From: Sebastian Ott Date: Wed, 12 Sep 2018 10:47:37 +0000 (+0200) Subject: s390/pci: map IOV resources X-Git-Tag: v5.1-rc1~173^2~35 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=cfbb4a7ab6bd5df7aca826b92ebb3565efd3d801;p=thirdparty%2Fkernel%2Flinux.git s390/pci: map IOV resources Map IOV resources such that pci common code recognizes the IOV capability of PFs. Signed-off-by: Sebastian Ott Signed-off-by: Martin Schwidefsky --- diff --git a/arch/s390/pci/pci.c b/arch/s390/pci/pci.c index 353161c2e3098..6b054ce8c9b6a 100644 --- a/arch/s390/pci/pci.c +++ b/arch/s390/pci/pci.c @@ -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)