
Hi Aswath,
On Wed, 11 Nov 2020 at 07:26, Aswath Govindraju a-govindraju@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-govindraju@ti.com
lib/fdtdec.c | 5 +++++ 1 file changed, 5 insertions(+)
fdt_path_offset() is slow. Could we just add this for the livetree case perhaps, thus avoiding the speed penalty?
Can you also add a case where this causes a problem?
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;
val = trailing_strtol(name); if (val != -1) { *seqp = val;
-- 2.17.1
Regards, Simon