]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commit
PCI: Do any VF BAR updates before enabling the BARs
authorGavin Shan <gwshan@linux.vnet.ibm.com>
Wed, 26 Oct 2016 01:15:35 +0000 (12:15 +1100)
committerBjorn Helgaas <bhelgaas@google.com>
Wed, 23 Nov 2016 23:21:42 +0000 (17:21 -0600)
commitf40ec3c748c6912f6266c56a7f7992de61b255ed
treee1dc6271fa4d4f61af0b413a995ddc1e8e8c8c2f
parent1600f62534b7b3da7978b43b52231a54c24df287
PCI: Do any VF BAR updates before enabling the BARs

Previously we enabled VFs and enable their memory space before calling
pcibios_sriov_enable().  But pcibios_sriov_enable() may update the VF BARs:
for example, on PPC PowerNV we may change them to manage the association of
VFs to PEs.

Because 64-bit BARs cannot be updated atomically, it's unsafe to update
them while they're enabled.  The half-updated state may conflict with other
devices in the system.

Call pcibios_sriov_enable() before enabling the VFs so any BAR updates
happen while the VF BARs are disabled.

[bhelgaas: changelog]
Tested-by: Carol Soto <clsoto@us.ibm.com>
Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
drivers/pci/iov.c