OSDN Git Service

s390/pci: map IOV resources
authorSebastian Ott <sebott@linux.ibm.com>
Wed, 12 Sep 2018 10:47:37 +0000 (12:47 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Thu, 7 Feb 2019 10:57:06 +0000 (11:57 +0100)
Map IOV resources such that pci common code recognizes the IOV
capability of PFs.

Signed-off-by: Sebastian Ott <sebott@linux.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/pci/pci.c

index 353161c..6b054ce 100644 (file)
@@ -482,6 +482,15 @@ void arch_teardown_msi_irqs(struct pci_dev *pdev)
        }
 }
 
+#ifdef CONFIG_PCI_IOV
+static struct resource iov_res = {
+       .name   = "PCI IOV res",
+       .start  = 0,
+       .end    = -1,
+       .flags  = IORESOURCE_MEM,
+};
+#endif
+
 static void zpci_map_resources(struct pci_dev *pdev)
 {
        resource_size_t len;
@@ -495,6 +504,17 @@ static void zpci_map_resources(struct pci_dev *pdev)
                        (resource_size_t __force) pci_iomap(pdev, i, 0);
                pdev->resource[i].end = pdev->resource[i].start + len - 1;
        }
+
+#ifdef CONFIG_PCI_IOV
+       i = PCI_IOV_RESOURCES;
+
+       for (; i < PCI_SRIOV_NUM_BARS + PCI_IOV_RESOURCES; i++) {
+               len = pci_resource_len(pdev, i);
+               if (!len)
+                       continue;
+               pdev->resource[i].parent = &iov_res;
+       }
+#endif
 }
 
 static void zpci_unmap_resources(struct pci_dev *pdev)