Re: [PATCH V4 18/43] vfio/pci: vfio_pci_vector_init

2025-06-01 Thread Cédric Le Goater

On 5/29/25 21:24, Steve Sistare wrote:

Extract a subroutine vfio_pci_vector_init.  No functional change.

Signed-off-by: Steve Sistare 



Reviewed-by: Cédric Le Goater 

Thanks,

C.



---
  hw/vfio/pci.c | 24 +---
  1 file changed, 17 insertions(+), 7 deletions(-)

diff --git a/hw/vfio/pci.c b/hw/vfio/pci.c
index 840590c..2d6dc54 100644
--- a/hw/vfio/pci.c
+++ b/hw/vfio/pci.c
@@ -512,6 +512,22 @@ static void vfio_update_kvm_msi_virq(VFIOMSIVector 
*vector, MSIMessage msg,
  kvm_irqchip_commit_routes(kvm_state);
  }
  
+static void vfio_pci_vector_init(VFIOPCIDevice *vdev, int nr)

+{
+VFIOMSIVector *vector = &vdev->msi_vectors[nr];
+PCIDevice *pdev = &vdev->pdev;
+
+vector->vdev = vdev;
+vector->virq = -1;
+if (event_notifier_init(&vector->interrupt, 0)) {
+error_report("vfio: Error: event_notifier_init failed");
+}
+vector->use = true;
+if (vdev->interrupt == VFIO_INT_MSIX) {
+msix_vector_use(pdev, nr);
+}
+}
+
  static int vfio_msix_vector_do_use(PCIDevice *pdev, unsigned int nr,
 MSIMessage *msg, IOHandler *handler)
  {
@@ -525,13 +541,7 @@ static int vfio_msix_vector_do_use(PCIDevice *pdev, 
unsigned int nr,
  vector = &vdev->msi_vectors[nr];
  
  if (!vector->use) {

-vector->vdev = vdev;
-vector->virq = -1;
-if (event_notifier_init(&vector->interrupt, 0)) {
-error_report("vfio: Error: event_notifier_init failed");
-}
-vector->use = true;
-msix_vector_use(pdev, nr);
+vfio_pci_vector_init(vdev, nr);
  }
  
  qemu_set_fd_handler(event_notifier_get_fd(&vector->interrupt),





[PATCH V4 18/43] vfio/pci: vfio_pci_vector_init

2025-05-29 Thread Steve Sistare
Extract a subroutine vfio_pci_vector_init.  No functional change.

Signed-off-by: Steve Sistare 
---
 hw/vfio/pci.c | 24 +---
 1 file changed, 17 insertions(+), 7 deletions(-)

diff --git a/hw/vfio/pci.c b/hw/vfio/pci.c
index 840590c..2d6dc54 100644
--- a/hw/vfio/pci.c
+++ b/hw/vfio/pci.c
@@ -512,6 +512,22 @@ static void vfio_update_kvm_msi_virq(VFIOMSIVector 
*vector, MSIMessage msg,
 kvm_irqchip_commit_routes(kvm_state);
 }
 
+static void vfio_pci_vector_init(VFIOPCIDevice *vdev, int nr)
+{
+VFIOMSIVector *vector = &vdev->msi_vectors[nr];
+PCIDevice *pdev = &vdev->pdev;
+
+vector->vdev = vdev;
+vector->virq = -1;
+if (event_notifier_init(&vector->interrupt, 0)) {
+error_report("vfio: Error: event_notifier_init failed");
+}
+vector->use = true;
+if (vdev->interrupt == VFIO_INT_MSIX) {
+msix_vector_use(pdev, nr);
+}
+}
+
 static int vfio_msix_vector_do_use(PCIDevice *pdev, unsigned int nr,
MSIMessage *msg, IOHandler *handler)
 {
@@ -525,13 +541,7 @@ static int vfio_msix_vector_do_use(PCIDevice *pdev, 
unsigned int nr,
 vector = &vdev->msi_vectors[nr];
 
 if (!vector->use) {
-vector->vdev = vdev;
-vector->virq = -1;
-if (event_notifier_init(&vector->interrupt, 0)) {
-error_report("vfio: Error: event_notifier_init failed");
-}
-vector->use = true;
-msix_vector_use(pdev, nr);
+vfio_pci_vector_init(vdev, nr);
 }
 
 qemu_set_fd_handler(event_notifier_get_fd(&vector->interrupt),
-- 
1.8.3.1