Thorsten Blum <[email protected]> writes:

> fdt_node_offset_by_prop_value() returns a negative error code on
> failure - fix the check accordingly.
>
> Fixes: d2477b5cc8ca ("[POWERPC] bootwrapper: Add a firmware-independent 
> simpleboot target.")
> Signed-off-by: Thorsten Blum <[email protected]>

yup, if it cannot find the node, then it should return a negative error
code, since cpu node is never the root node. The same thing was anyway
properly done for memory device node in the same function few lines
before...

        /* Find the memory range */
        node = fdt_node_offset_by_prop_value(_dtb_start, -1, "device_type",
                                             "memory", sizeof("memory"));
        if (node < 0)
                fatal("Cannot find memory node\n");

...but for cpu node, it uses a wrong comparison check.

Looks good to me. Please feel free to add:
Reviewed-by: Ritesh Harjani (IBM) <[email protected]>

> ---
>  arch/powerpc/boot/simpleboot.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/powerpc/boot/simpleboot.c b/arch/powerpc/boot/simpleboot.c
> index c80691d83880..27591df41e9e 100644
> --- a/arch/powerpc/boot/simpleboot.c
> +++ b/arch/powerpc/boot/simpleboot.c
> @@ -68,7 +68,7 @@ void platform_init(unsigned long r3, unsigned long r4, 
> unsigned long r5,
>       /* finally, setup the timebase */
>       node = fdt_node_offset_by_prop_value(_dtb_start, -1, "device_type",
>                                            "cpu", sizeof("cpu"));
> -     if (!node)
> +     if (node < 0)
>               fatal("Cannot find cpu node\n");
>       timebase = fdt_getprop(_dtb_start, node, "timebase-frequency", &size);
>       if (timebase && (size == 4))

Reply via email to