Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d33047fd authored by Daniel Axtens's avatar Daniel Axtens Committed by Michael Ellerman
Browse files

powerpc/powernv: Fix early pci_controller_ops loading.



Load the PowerNV platform pci controller ops into pci controllers
after all the operations are loaded into the platform ops struct, not
before.

Otherwise we aren't actually setting the ops properly which can break
IO for some devices.

Fixes: 65ebf4b6 ("powerpc/powernv: Move controller ops from ppc_md to controller_ops")
Reported-by: default avatarGavin Shan <gwshan@linux.vnet.ibm.com>
Reviewed-by: default avatarGavin Shan <gwshan@linux.vnet.ibm.com>
Signed-off-by: default avatarDaniel Axtens <dja@axtens.net>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
parent 433c5c20
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -2693,7 +2693,6 @@ static void __init pnv_pci_init_ioda_phb(struct device_node *np,
		hose->last_busno = 0xff;
	}
	hose->private_data = phb;
	hose->controller_ops = pnv_pci_controller_ops;
	phb->hub_id = hub_id;
	phb->opal_id = phb_id;
	phb->type = ioda_type;
@@ -2812,6 +2811,7 @@ static void __init pnv_pci_init_ioda_phb(struct device_node *np,
	pnv_pci_controller_ops.enable_device_hook = pnv_pci_enable_device_hook;
	pnv_pci_controller_ops.window_alignment = pnv_pci_window_alignment;
	pnv_pci_controller_ops.reset_secondary_bus = pnv_pci_reset_secondary_bus;
	hose->controller_ops = pnv_pci_controller_ops;

#ifdef CONFIG_PCI_IOV
	ppc_md.pcibios_fixup_sriov = pnv_pci_ioda_fixup_iov_resources;