diff options
author | KarimAllah Ahmed <karahmed@amazon.de> | 2018-03-19 21:06:00 +0100 |
---|---|---|
committer | Bjorn Helgaas <helgaas@kernel.org> | 2018-03-31 15:32:43 -0500 |
commit | cf0921bea66c55600a48009597caa5fcb1419748 (patch) | |
tree | e2a61ebd1a8c46a4fcac4231effc95a7c8469a75 /drivers/pci/pci.h | |
parent | bf4447fd1cb6158b60bd60a79998e1d029d31e68 (diff) | |
download | blackbird-op-linux-cf0921bea66c55600a48009597caa5fcb1419748.tar.gz blackbird-op-linux-cf0921bea66c55600a48009597caa5fcb1419748.zip |
PCI/IOV: Use VF0 cached config registers for other VFs
Cache some config data from VF0 and use it for all other VFs instead of
reading it from the config space of each VF. We assume these items are the
same across all associated VFs:
Revision ID
Class Code
Subsystem Vendor ID
Subsystem ID
This is an optimization when enabling SR-IOV on a device with many VFs.
Signed-off-by: KarimAllah Ahmed <karahmed@amazon.de>
[bhelgaas: changelog, simplify comments, remove unused "device", test
CONFIG_PCI_IOV instead of CONFIG_PCI_ATS, rename functions]
Signed-off-by: Bjorn Helgaas <helgaas@kernel.org>
Diffstat (limited to 'drivers/pci/pci.h')
-rw-r--r-- | drivers/pci/pci.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h index fcd81911b127..bdb4ba2d5f95 100644 --- a/drivers/pci/pci.h +++ b/drivers/pci/pci.h @@ -271,6 +271,10 @@ struct pci_sriov { u16 driver_max_VFs; /* Max num VFs driver supports */ struct pci_dev *dev; /* Lowest numbered PF */ struct pci_dev *self; /* This PF */ + u32 class; /* VF device */ + u8 hdr_type; /* VF header type */ + u16 subsystem_vendor; /* VF subsystem vendor */ + u16 subsystem_device; /* VF subsystem device */ resource_size_t barsz[PCI_SRIOV_NUM_BARS]; /* VF BAR size */ bool drivers_autoprobe; /* Auto probing of VFs by driver */ }; |