summaryrefslogtreecommitdiffstats
path: root/drivers/of
diff options
context:
space:
mode:
authorPhilipp Zabel <p.zabel@pengutronix.de>2016-12-08 11:15:51 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2017-01-09 13:41:12 +0100
commitf49b415b92319bbc9fdee0fe06b62476f276811a (patch)
treea6aa653f1ada1d980e63f0ae2f1372b680648a51 /drivers/of
parentad43a6de3d47065aa3cd54eb31e37aa03681351f (diff)
downloadbarebox-f49b415b92319bbc9fdee0fe06b62476f276811a.tar.gz
barebox-f49b415b92319bbc9fdee0fe06b62476f276811a.tar.xz
of: base: add chosen node if it does not exist when adding initrd
If the chosen node does not exist, of_add_initrd fails to pass the initrd to the kernel. Instead it should create the chosen node, just like of_fixup_bootargs does. Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/of')
-rw-r--r--drivers/of/base.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/of/base.c b/drivers/of/base.c
index 767d4e1e36..0c20fcd5c3 100644
--- a/drivers/of/base.c
+++ b/drivers/of/base.c
@@ -2019,9 +2019,9 @@ int of_add_initrd(struct device_node *root, resource_size_t start,
struct device_node *chosen;
__be32 buf[2];
- chosen = of_find_node_by_path_from(root, "/chosen");
+ chosen = of_create_node(root, "/chosen");
if (!chosen)
- return -EINVAL;
+ return -ENOMEM;
if (end) {
of_write_number(buf, start, 2);