[PATCH 2/3] of/flattree: Fix crash when device tree absent
Benjamin Herrenschmidt
benh at kernel.crashing.org
Mon Jul 19 10:04:42 EST 2010
On Wed, 2010-07-14 at 17:31 -0600, Grant Likely wrote:
> This patch fixes the condition where device tree support is compiled
> in, but no device tree was proved by firmware. It makes
> of_platform_bus_probe() explicitly check for a NULL device tree
> pointer, and adds an error message if the device tree was unable
> to be flattened.
>
> Signed-off-by: Grant Likely <grant.likely at secretlab.ca>
Not sure about the message..
> ---
> drivers/of/fdt.c | 2 ++
> drivers/of/platform.c | 2 ++
> 2 files changed, 4 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
> index d61fda8..66401bc 100644
> --- a/drivers/of/fdt.c
> +++ b/drivers/of/fdt.c
> @@ -94,6 +94,8 @@ int __init of_scan_flat_dt(int (*it)(unsigned long node,
> break;
> } while (1);
>
> + if (rc)
> + pr_err("Failed to unflatten device tree blob. rc=%i\n", rc);
> return rc;
> }
This is of_scan_flat_dt() ... might be better using something like
"Failed to scan the flat device-tree (error %d)". Might also want to
rate limit it to 1.
> diff --git a/drivers/of/platform.c b/drivers/of/platform.c
> index f0ca906..9bc6999 100644
> --- a/drivers/of/platform.c
> +++ b/drivers/of/platform.c
> @@ -674,6 +674,8 @@ int of_platform_bus_probe(struct device_node *root,
> root = of_find_node_by_path("/");
> else
> of_node_get(root);
> + if (root == NULL)
> + return -EINVAL;
>
> pr_debug("of_platform_bus_probe()\n");
> pr_debug(" starting at: %s\n", root->full_name);
Cheers,
Ben.
More information about the devicetree-discuss
mailing list