qemu-s390x
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 09/12] s390x/pci: enable adapter event notification for inter


From: Matthew Rosato
Subject: Re: [PATCH 09/12] s390x/pci: enable adapter event notification for interpreted devices
Date: Wed, 8 Dec 2021 14:09:36 -0500
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.3.0

On 12/8/21 6:29 AM, Thomas Huth wrote:
On 07/12/2021 22.04, Matthew Rosato wrote:
Use the associated vfio feature ioctl to enable adapter event notification
and forwarding for devices when requested.  This feature will be set up
with or without firmware assist based upon the 'intassist' setting.

Signed-off-by: Matthew Rosato <mjrosato@linux.ibm.com>
---
  hw/s390x/s390-pci-bus.c          | 24 +++++++--
  hw/s390x/s390-pci-inst.c         | 54 +++++++++++++++++++-
  hw/s390x/s390-pci-vfio.c         | 88 ++++++++++++++++++++++++++++++++
  include/hw/s390x/s390-pci-bus.h  |  1 +
  include/hw/s390x/s390-pci-vfio.h | 20 ++++++++
  5 files changed, 182 insertions(+), 5 deletions(-)
[...]
diff --git a/hw/s390x/s390-pci-vfio.c b/hw/s390x/s390-pci-vfio.c
index 78093aaac7..6f9271df87 100644
--- a/hw/s390x/s390-pci-vfio.c
+++ b/hw/s390x/s390-pci-vfio.c
@@ -152,6 +152,94 @@ int s390_pci_update_passthrough_fh(S390PCIBusDevice *pbdev)
      return 0;
  }
+int s390_pci_probe_aif(S390PCIBusDevice *pbdev)
+{
+    VFIOPCIDevice *vdev = container_of(pbdev->pdev, VFIOPCIDevice, pdev);

Should this use VFIO_PCI() instead of container_of ?


Yes, VFIO_PCI(pbdev->pdev) should work.

+    struct vfio_device_feature feat = {
+        .argsz = sizeof(struct vfio_device_feature),
+        .flags = VFIO_DEVICE_FEATURE_PROBE + VFIO_DEVICE_FEATURE_ZPCI_AIF
+    };
+
+    assert(vdev);

... then you could likely also drop the assert(), I think?

If I've understood qom.h correctly then yes you're right, if we use the instance checker VFIO_PCI() we should trigger an assert through object_dynamic_cast_assert() already if the pdev isn't a vfio-pci device -- I just verified that by trying to call VFIO_PCI() with something else and we indeed get an assert e.g. 'VFIO_PCI: Object 0x... is not an instance of type vfio-pci'

So I'll change these and get rid of the extra asserts, thanks.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]