[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 11/12] s390x/pci: merge msix init functions
From: |
Cornelia Huck |
Subject: |
[Qemu-devel] [PULL 11/12] s390x/pci: merge msix init functions |
Date: |
Tue, 17 Jan 2017 09:56:44 +0100 |
From: Yi Min Zhao <address@hidden>
Currently there're two functions, s390_pci_setup_msix() and
s390_pci_msix_init(), for msix initialization, and being called once
for each zpci device plugging. Let's integrate them.
Moreover msix is mandatory in s390 architecture. So we ensure the pci
device being plugged supports msix. For vfio (which is the only tested
setup so far), nothing changes.
Signed-off-by: Yi Min Zhao <address@hidden>
Reviewed-by: Pierre Morel <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>
---
hw/s390x/s390-pci-bus.c | 22 ++++++++++------------
1 file changed, 10 insertions(+), 12 deletions(-)
diff --git a/hw/s390x/s390-pci-bus.c b/hw/s390x/s390-pci-bus.c
index 736c0fcce5..0075cece14 100644
--- a/hw/s390x/s390-pci-bus.c
+++ b/hw/s390x/s390-pci-bus.c
@@ -582,8 +582,9 @@ static int s390_pcihost_init(SysBusDevice *dev)
return 0;
}
-static int s390_pci_setup_msix(S390PCIBusDevice *pbdev)
+static int s390_pci_msix_init(S390PCIBusDevice *pbdev)
{
+ char *name;
uint8_t pos;
uint16_t ctrl;
uint32_t table, pba;
@@ -591,7 +592,7 @@ static int s390_pci_setup_msix(S390PCIBusDevice *pbdev)
pos = pci_find_capability(pbdev->pdev, PCI_CAP_ID_MSIX);
if (!pos) {
pbdev->msix.available = false;
- return 0;
+ return -1;
}
ctrl = pci_host_config_read_common(pbdev->pdev, pos + PCI_MSIX_FLAGS,
@@ -607,21 +608,15 @@ static int s390_pci_setup_msix(S390PCIBusDevice *pbdev)
pbdev->msix.pba_offset = pba & ~PCI_MSIX_FLAGS_BIRMASK;
pbdev->msix.entries = (ctrl & PCI_MSIX_FLAGS_QSIZE) + 1;
pbdev->msix.available = true;
- return 0;
-}
-
-static void s390_pci_msix_init(S390PCIBusDevice *pbdev)
-{
- char *name;
name = g_strdup_printf("msix-s390-%04x", pbdev->uid);
-
memory_region_init_io(&pbdev->msix_notify_mr, OBJECT(pbdev),
&s390_msi_ctrl_ops, pbdev, name, PAGE_SIZE);
memory_region_add_subregion(&pbdev->iommu->mr, ZPCI_MSI_ADDR,
&pbdev->msix_notify_mr);
-
g_free(name);
+
+ return 0;
}
static void s390_pci_msix_free(S390PCIBusDevice *pbdev)
@@ -724,8 +719,11 @@ static void s390_pcihost_hot_plug(HotplugHandler
*hotplug_dev,
pbdev->iommu->pbdev = pbdev;
pbdev->state = ZPCI_FS_STANDBY;
- s390_pci_msix_init(pbdev);
- s390_pci_setup_msix(pbdev);
+ if (s390_pci_msix_init(pbdev)) {
+ error_setg(errp, "MSI-X support is mandatory "
+ "in the S390 architecture");
+ return;
+ }
if (dev->hotplugged) {
s390_pci_generate_plug_event(HP_EVENT_RESERVED_TO_STANDBY,
--
2.11.0
- [Qemu-devel] [PULL 01/12] s390x: remove double compat statement, (continued)
- [Qemu-devel] [PULL 01/12] s390x: remove double compat statement, Cornelia Huck, 2017/01/17
- [Qemu-devel] [PULL 02/12] s390x: add compat machine for 2.9, Cornelia Huck, 2017/01/17
- [Qemu-devel] [PULL 03/12] s390x/kvm: use kvm_gsi_routing_enabled in flic, Cornelia Huck, 2017/01/17
- [Qemu-devel] [PULL 05/12] s390x/pci: dynamically allocate iommu, Cornelia Huck, 2017/01/17
- [Qemu-devel] [PULL 06/12] s390x/pci: change the device array to a list, Cornelia Huck, 2017/01/17
- [Qemu-devel] [PULL 04/12] s390x/pci: make S390PCIIOMMU inherit Object, Cornelia Huck, 2017/01/17
- [Qemu-devel] [PULL 08/12] s390x/pci: PCI multibus bridge handling, Cornelia Huck, 2017/01/17
- [Qemu-devel] [PULL 10/12] s390x/pci: handle PCIBridge bus number, Cornelia Huck, 2017/01/17
- [Qemu-devel] [PULL 07/12] s390x/pci: optimize calling s390_get_phb(), Cornelia Huck, 2017/01/17
- [Qemu-devel] [PULL 09/12] s390x/pci: use hashtable to look up zpci via fh, Cornelia Huck, 2017/01/17
- [Qemu-devel] [PULL 11/12] s390x/pci: merge msix init functions,
Cornelia Huck <=
- [Qemu-devel] [PULL 12/12] virtio-ccw: fix ring sizing, Cornelia Huck, 2017/01/17
- Re: [Qemu-devel] [PULL 00/12] s390x update, Peter Maydell, 2017/01/19
- Re: [Qemu-devel] [PULL 00/12] s390x update, Cornelia Huck, 2017/01/20
- Re: [Qemu-devel] [PULL 00/12] s390x update, Thomas Huth, 2017/01/20
- Re: [Qemu-devel] [PULL 00/12] s390x update, Thomas Huth, 2017/01/20
- Re: [Qemu-devel] [PULL 00/12] s390x update, Cornelia Huck, 2017/01/20
- Re: [Qemu-devel] [PULL 00/12] s390x update, Thomas Huth, 2017/01/20
- Re: [Qemu-devel] [PULL 00/12] s390x update, Cornelia Huck, 2017/01/20