This series reworks the of_(bus_)?n_(size|addr)_cells() functions. They fail to hold the DT spinlock while accessing 'parent' pointer and don't hold a reference to the parent node. Neither is likely a real issue as most nodes are static. With these issues fixed, we can then replace the open coded version in of_irq_parse_raw(). This series depends on the fixes from this series[1]. Rob [1] https://lore.kernel.org/lkml/20240529-dt-interrupt-map-fix-v2-0-ef86dc5bcd2a@xxxxxxxxxx/ --- Rob Herring (Arm) (3): of: Add an iterator to walk up parent nodes of: Add missing locking to of_(bus_)?n_(size|addr)_cells() of/irq: Use of_bus_n_addr_cells() to retrieve "#address-cells" drivers/of/base.c | 18 ++++++++---------- drivers/of/irq.c | 15 +++------------ include/linux/of.h | 5 +++++ 3 files changed, 16 insertions(+), 22 deletions(-) --- base-commit: e7985f43609c782132f8f5794ee6cc4cdb66ca75 change-id: 20240530-dt-interrupt-map-fix-6946101b1391 Best regards, -- Rob Herring (Arm) <robh@xxxxxxxxxx>