For VFs, the Memory Space Enable bit in the Command Register is
hard-wired to 0.

Add a new bit to signify devices where the Command Register Memory
Space Enable bit does not control the device's response to MMIO
accesses.

Signed-off-by: Matthew Rosato <mjros...@linux.ibm.com>
---
 drivers/pci/iov.c   | 1 +
 include/linux/pci.h | 1 +
 2 files changed, 2 insertions(+)

diff --git a/drivers/pci/iov.c b/drivers/pci/iov.c
index b37e08c..4afd4ee 100644
--- a/drivers/pci/iov.c
+++ b/drivers/pci/iov.c
@@ -180,6 +180,7 @@ int pci_iov_add_virtfn(struct pci_dev *dev, int id)
        virtfn->device = iov->vf_device;
        virtfn->is_virtfn = 1;
        virtfn->physfn = pci_dev_get(dev);
+       virtfn->no_command_memory = 1;
 
        if (id == 0)
                pci_read_vf_config_common(virtfn);
diff --git a/include/linux/pci.h b/include/linux/pci.h
index 8355306..3ff72312 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -445,6 +445,7 @@ struct pci_dev {
        unsigned int    is_probed:1;            /* Device probing in progress */
        unsigned int    link_active_reporting:1;/* Device capable of reporting 
link active */
        unsigned int    no_vf_scan:1;           /* Don't scan for VFs after IOV 
enablement */
+       unsigned int    no_command_memory:1;    /* No PCI_COMMAND_MEMORY */
        pci_dev_flags_t dev_flags;
        atomic_t        enable_cnt;     /* pci_enable_device has been called */
 
-- 
1.8.3.1

Reply via email to