aboutsummaryrefslogtreecommitdiff
path: root/core/pci.c
diff options
context:
space:
mode:
authorOliver O'Halloran <oohall@gmail.com>2019-05-01 18:05:59 +1000
committerOliver O'Halloran <oohall@gmail.com>2019-05-06 16:19:46 +1000
commit22057f868f3b2b1fd02647a738f6da0858b5eb6c (patch)
tree15c7b041fdc0dfb7c4934206f0a0e89e8e830a92 /core/pci.c
parent54811997b6d02dacaf8dd0d61cadaf3786dbabb0 (diff)
downloadskiboot-22057f868f3b2b1fd02647a738f6da0858b5eb6c.zip
skiboot-22057f868f3b2b1fd02647a738f6da0858b5eb6c.tar.gz
skiboot-22057f868f3b2b1fd02647a738f6da0858b5eb6c.tar.bz2
pci/iov: Remove skiboot VF tracking
This feature was added a few years ago in response to a request to make the MaxPayloadSize (MPS) field of a Virtual Function match the MPS of the Physical Function that hosts it. The SR-IOV specification states the the MPS field of the VF is "ResvP". This indicates the VF will use whatever MPS is configured on the PF and that the field should be treated as a reserved field in the config space of the VF. In other words, a SR-IOV spec compliant VF should always return zero in the MPS field. Adding hacks in OPAL to make it non-zero is... misguided at best. Additionally, there is a bug in the way pci_device structures are handled by VFs that results in a crash on fast-reboot that occurs if VFs are enabled and then disabled prior to rebooting. This patch fixes the bug by removing the code entirely. This patch has no impact on SR-IOV support on the host operating system. Cc: Sergey Miroshnichenko <s.miroshnichenko@yadro.com> Cc: skiboot-stable@lists.ozlabs.org Tested-by: Santwana Samantray <santwana.samantray@in.ibm.com> Tested-by: Satheesh Rajendran <satheera@in.ibm.com> [oliver: added tested-bys] Signed-off-by: Oliver O'Halloran <oohall@gmail.com>
Diffstat (limited to 'core/pci.c')
-rw-r--r--core/pci.c2
1 files changed, 0 insertions, 2 deletions
diff --git a/core/pci.c b/core/pci.c
index 4a83c71..af9df70 100644
--- a/core/pci.c
+++ b/core/pci.c
@@ -18,7 +18,6 @@
#include <cpu.h>
#include <pci.h>
#include <pci-cfg.h>
-#include <pci-iov.h>
#include <pci-slot.h>
#include <pci-quirk.h>
#include <timebase.h>
@@ -193,7 +192,6 @@ void pci_init_capabilities(struct phb *phb, struct pci_device *pd)
{
pci_init_pcie_cap(phb, pd);
pci_init_aer_cap(phb, pd);
- pci_init_iov_cap(phb, pd);
pci_init_pm_cap(phb, pd);
}