Hi Aswath, On Mon, 16 Nov 2020 at 07:29, Aswath Govindraju <a-govindr...@ti.com> wrote: > > While assigning the sequence number to subsystem instances by reading the > aliases property, only DT nodes names are compared and not the complete > path. This causes a problem when there are two DT nodes with same name but > have different paths. > > Fix it by comparing the phandles of DT nodes after the node names match. > > Signed-off-by: Aswath Govindraju <a-govindr...@ti.com> > --- > > Resending this patch as it was held awaiting for moderator approval because > patch was sent by non-member. > > lib/fdtdec.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/lib/fdtdec.c b/lib/fdtdec.c > index 2015907dee7d..9e1bfe0b519e 100644 > --- a/lib/fdtdec.c > +++ b/lib/fdtdec.c > @@ -478,6 +478,11 @@ int fdtdec_get_alias_seq(const void *blob, const char > *base, int offset, > slash = strrchr(prop, '/'); > if (strcmp(slash + 1, find_name)) > continue; > + > + if (fdt_get_phandle(blob, offset) != > + fdt_get_phandle(blob, fdt_path_offset(blob, prop))) > + continue;
The call to fdt_path_offset() is very slow. Perhaps we can do this check only with livetree? What situation is causing a problem for you? What are the node / alias names? > + > val = trailing_strtol(name); > if (val != -1) { > *seqp = val; > -- > 2.17.1 > Regards, Simon