[PATCH] of: base: add chosen node if it does not exist when adding initrd
Philipp Zabel
p.zabel at pengutronix.de
Thu Dec 8 02:15:51 PST 2016
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 at pengutronix.de>
---
drivers/of/base.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/of/base.c b/drivers/of/base.c
index 767d4e1..0c20fcd 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);
--
2.10.2
More information about the barebox
mailing list