[PATCH] powerpc: Check flat device tree version at boot
Rob Herring
robherring2 at gmail.com
Fri Aug 29 00:27:12 EST 2014
On Thu, Aug 28, 2014 at 3:40 AM, Michael Ellerman <mpe at ellerman.id.au> wrote:
> In commit e6a6928c3ea1 "of/fdt: Convert FDT functions to use libfdt",
> the kernel stopped supporting old flat device tree formats. The minimum
> supported version is now 0x10.
Ugg. Is that something which needs to be supported? Supporting it at
this point would mean adding support to libfdt.
Rob
> There was a checking function added, early_init_dt_verify(), but it's
> not called on powerpc.
>
> The result is, if you boot with an old flat device tree, the kernel will
> fail to parse it correctly, think you have no memory etc. and hilarity
> ensues.
>
> We can't really fix it, but we can at least catch the fact that the
> device tree is in an unsupported format and panic(). We can't call
> BUG(), it's too early.
>
> Signed-off-by: Michael Ellerman <mpe at ellerman.id.au>
> ---
> arch/powerpc/kernel/prom.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c
> index 4e139f8a69ef..bb777b255b1c 100644
> --- a/arch/powerpc/kernel/prom.c
> +++ b/arch/powerpc/kernel/prom.c
> @@ -641,6 +641,10 @@ void __init early_init_devtree(void *params)
>
> DBG(" -> early_init_devtree(%p)\n", params);
>
> + /* Too early to BUG_ON(), do it by hand */
> + if (!early_init_dt_verify(params))
> + panic("BUG: Failed verifying flat device tree, bad version?");
> +
> /* Setup flat device-tree pointer */
> initial_boot_params = params;
>
> --
> 1.9.1
>
More information about the Linuxppc-dev
mailing list