vfio/pci: Simplify the is_intx/msi/msix/etc defines
authorJason Gunthorpe <jgg@nvidia.com>
Fri, 26 Aug 2022 19:34:03 +0000 (16:34 -0300)
committerAlex Williamson <alex.williamson@redhat.com>
Thu, 1 Sep 2022 21:29:11 +0000 (15:29 -0600)
Only three of these are actually used, simplify to three inline functions,
and open code the if statement in vfio_pci_config.c.

Reviewed-by: Kevin Tian <kevin.tian@intel.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Link: https://lore.kernel.org/r/3-v2-1bd95d72f298+e0e-vfio_pci_priv_jgg@nvidia.com
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
drivers/vfio/pci/vfio_pci_config.c
drivers/vfio/pci/vfio_pci_intrs.c
drivers/vfio/pci/vfio_pci_priv.h

index 5f43b28..4a35042 100644 (file)
@@ -1166,7 +1166,7 @@ static int vfio_msi_config_write(struct vfio_pci_core_device *vdev, int pos,
                flags = le16_to_cpu(*pflags);
 
                /* MSI is enabled via ioctl */
-               if  (!is_msi(vdev))
+               if  (vdev->irq_type != VFIO_PCI_MSI_IRQ_INDEX)
                        flags &= ~PCI_MSI_FLAGS_ENABLE;
 
                /* Check queue size */
index 32d0144..8cb987e 100644 (file)
 
 #include "vfio_pci_priv.h"
 
-#define is_intx(vdev) (vdev->irq_type == VFIO_PCI_INTX_IRQ_INDEX)
-#define is_msix(vdev) (vdev->irq_type == VFIO_PCI_MSIX_IRQ_INDEX)
-#define is_irq_none(vdev) (!(is_intx(vdev) || is_msi(vdev) || is_msix(vdev)))
-#define irq_is(vdev, type) (vdev->irq_type == type)
-
 struct vfio_pci_irq_ctx {
        struct eventfd_ctx      *trigger;
        struct virqfd           *unmask;
@@ -36,6 +31,23 @@ struct vfio_pci_irq_ctx {
        struct irq_bypass_producer      producer;
 };
 
+static bool irq_is(struct vfio_pci_core_device *vdev, int type)
+{
+       return vdev->irq_type == type;
+}
+
+static bool is_intx(struct vfio_pci_core_device *vdev)
+{
+       return vdev->irq_type == VFIO_PCI_INTX_IRQ_INDEX;
+}
+
+static bool is_irq_none(struct vfio_pci_core_device *vdev)
+{
+       return !(vdev->irq_type == VFIO_PCI_INTX_IRQ_INDEX ||
+                vdev->irq_type == VFIO_PCI_MSI_IRQ_INDEX ||
+                vdev->irq_type == VFIO_PCI_MSIX_IRQ_INDEX);
+}
+
 /*
  * INTx
  */
index ac701f0..4830fb0 100644 (file)
@@ -23,8 +23,6 @@ struct vfio_pci_ioeventfd {
        bool                    test_mem;
 };
 
-#define is_msi(vdev) (vdev->irq_type == VFIO_PCI_MSI_IRQ_INDEX)
-
 void vfio_pci_intx_mask(struct vfio_pci_core_device *vdev);
 void vfio_pci_intx_unmask(struct vfio_pci_core_device *vdev);