Message ID | 20210126015159.23923-1-chris.packham@alliedtelesis.co.nz |
---|---|
State | New |
Headers | show |
Series | of/fdt: Check against '/chosen' in early_init_dt_scan_chosen | expand |
On Mon, Jan 25, 2021 at 8:02 PM Chris Packham <chris.packham@alliedtelesis.co.nz> wrote: > > of_scan_flat_dt() passes the name of the visited node to the iterator. > In the case of '/chosen' this includes the leading '/'. Update > early_init_dt_scan_chosen() to expect this. > > Fixes: 7536c7e03e74 ("of/fdt: Remove redundant kbasename function call") > Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz> > --- > drivers/of/fdt.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c > index feb0f2d67fc5..861aedf0bb7c 100644 > --- a/drivers/of/fdt.c > +++ b/drivers/of/fdt.c > @@ -1043,7 +1043,10 @@ int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, > pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); > > if (depth != 1 || !data || > - (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) > + (strcmp(uname, "chosen") != 0 && > + strcmp(uname, "chosen@0") != 0 && > + strcmp(uname, "/chosen") != 0 && > + strcmp(uname, "/chosen@0") != 0)) 2 out of 4 of those are wrong. > return 0; > > early_init_dt_check_for_initrd(node); > -- > 2.30.0 >
diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c index feb0f2d67fc5..861aedf0bb7c 100644 --- a/drivers/of/fdt.c +++ b/drivers/of/fdt.c @@ -1043,7 +1043,10 @@ int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); if (depth != 1 || !data || - (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) + (strcmp(uname, "chosen") != 0 && + strcmp(uname, "chosen@0") != 0 && + strcmp(uname, "/chosen") != 0 && + strcmp(uname, "/chosen@0") != 0)) return 0; early_init_dt_check_for_initrd(node);
of_scan_flat_dt() passes the name of the visited node to the iterator. In the case of '/chosen' this includes the leading '/'. Update early_init_dt_scan_chosen() to expect this. Fixes: 7536c7e03e74 ("of/fdt: Remove redundant kbasename function call") Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz> --- drivers/of/fdt.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)