lkml.org 
[lkml]   [2010]   [Jun]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Subject[PATCH] of/flattree: Fix crash when device tree absent
From
Date
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@secretlab.ca>
---
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 b6987bb..beda593 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;
}

diff --git a/drivers/of/platform.c b/drivers/of/platform.c
index 3eb4cf6..1f5a210 100644
--- a/drivers/of/platform.c
+++ b/drivers/of/platform.c
@@ -640,6 +640,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);


\
 
 \ /
  Last update: 2010-06-26 00:11    [W:0.074 / U:0.140 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site