On 02.09.2025 17:13, Klaus Kudielka wrote: > The blamed commit simplifies code, by using the for_each_of_range() > iterator. But it results in no pci devices being detected anymore on > Turris Omnia (and probably other mvebu targets). > > Analysis: > > To determine range.flags, of_pci_range_parser_one() uses bus->get_flags(), > which resolves to of_bus_pci_get_flags(). That function already returns an > IORESOURCE bit field, and NOT the original flags from the "ranges" > resource. > > Then mvebu_get_tgt_attr() attempts the very same conversion again. > But this is a misinterpretation of range.flags. > > Remove the misinterpretation of range.flags in mvebu_get_tgt_addr(), ^^^^ Just noticed the typo. Should be mvebu_get_tgt_attr(). > to restore the intended behavior. > > Signed-off-by: Klaus Kudielka <klaus.kudielka@xxxxxxxxx> > Fixes: 5da3d94a23c6 ("PCI: mvebu: Use for_each_of_range() iterator for parsing "ranges"") > Reported-by: Bjorn Helgaas <helgaas@xxxxxxxxxx> > Closes: https://lore.kernel.org/r/20250820184603.GA633069@bhelgaas/ > Reported-by: Jan Palus <jpalus@xxxxxxxxxxxx> > Closes: https://bugzilla.kernel.org/show_bug.cgi?id=220479 > --- > drivers/pci/controller/pci-mvebu.c | 14 ++------------ > 1 file changed, 2 insertions(+), 12 deletions(-)