[<prev] [next>] [day] [month] [year] [list]
Message-ID: <20100625220306.6903.17916.stgit@angua>
Date: Fri, 25 Jun 2010 16:03:06 -0600
From: Grant Likely <grant.likely@...retlab.ca>
To: benh@...nel.crashing.org, monstr@...str.eu
Cc: microblaze-uclinux@...e.uq.edu.au,
devicetree-discuss@...ts.ozlabs.org, linux-kernel@...r.kernel.org,
jeremy.kerr@...onical.com, sfr@...b.auug.org.au
Subject: [PATCH] of/flattree: Fix crash when device tree absent
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@...retlab.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);
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists