diff --git a/target/linux/generic/patches-4.9/170-MIPS-PCI-scan-PCI-controllers-in-reverse-order.patch b/target/linux/generic/patches-4.9/170-MIPS-PCI-scan-PCI-controllers-in-reverse-order.patch new file mode 100644 index 0000000000..74b54e93aa --- /dev/null +++ b/target/linux/generic/patches-4.9/170-MIPS-PCI-scan-PCI-controllers-in-reverse-order.patch @@ -0,0 +1,31 @@ +From: Mathias Kresin +Date: Tue, 14 Mar 2017 22:12:12 +0100 +Subject: [PATCH v2] MIPS: PCI: scan PCI controllers in reverse order + +Commit 23dac14d058f ("MIPS: PCI: Use struct list_head lists") changed +the controller list from reverse to straight order without taking care +of the changed order for the scan of the recorded PCI controllers. + +Traverse the list in reverse order to restore the former behaviour. + +This patches fixes the following PCI error on lantiq: + + pci 0000:01:00.0: BAR 0: error updating (0x1c000004 != 0x000000) + +Fixes: 23dac14d058f ("MIPS: PCI: Use struct list_head lists") +Signed-off-by: Mathias Kresin +--- + arch/mips/pci/pci-legacy.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/arch/mips/pci/pci-legacy.c ++++ b/arch/mips/pci/pci-legacy.c +@@ -222,7 +222,7 @@ static int __init pcibios_init(void) + struct pci_controller *hose; + + /* Scan all of the recorded PCI controllers. */ +- list_for_each_entry(hose, &controllers, list) ++ list_for_each_entry_reverse(hose, &controllers, list) + pcibios_scanbus(hose); + + pci_fixup_irqs(pci_common_swizzle, pcibios_map_irq);