accel/accel-irq: add generic commit_route_changes
A generic accel_irqchip_commit_route_changes() fn has been introduced for usage in the MSHV accelerator. The respective kvm_ fn can be removed since we handle the commit op in a generic way. Signed-off-by: Magnus Kulke <magnuskulke@linux.microsoft.com> Link: https://lore.kernel.org/r/20260417105618.3621-7-magnuskulke@linux.microsoft.com Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Magnus Kulke committed
Apr 17, 2026 at 12:55 UTC
cc2b30223cd1bd0c05dca10554fae6626511ddd5
5 files changed
+7
-19
accel/accel-irq.c
+3
-7
@@ -45,13 +45,9 @@ int accel_irqchip_update_msi_route(int vector, MSIMessage msg, PCIDevice *dev)
45
46
void accel_irqchip_commit_route_changes(AccelRouteChange *c)
47
{
48
-#ifdef CONFIG_MSHV_IS_POSSIBLE
49
- if (mshv_msi_via_irqfd_enabled()) {
50
- mshv_irqchip_commit_routes();
51
- }
52
-#endif
53
- if (kvm_enabled()) {
54
- kvm_irqchip_commit_route_changes(c);
48
+ if (c->changes) {
49
+ accel_irqchip_commit_routes();
50
+ c->changes = 0;
51
}
52
}
53
hw/misc/ivshmem-pci.c
+1
-1
@@ -436,7 +436,7 @@ static void ivshmem_add_kvm_msi_virq(IVShmemState *s, int vector,
436
error_setg(errp, "kvm_irqchip_add_msi_route failed");
437
return;
438
}
439
- kvm_irqchip_commit_route_changes(&c);
439
+ accel_irqchip_commit_route_changes(&c);
440
441
s->msi_vectors[vector].virq = ret;
442
s->msi_vectors[vector].pdev = pdev;
hw/vfio/pci.c
+2
-2
@@ -691,7 +691,7 @@ static int vfio_msix_vector_do_use(PCIDevice *pdev, unsigned int nr,
691
} else {
692
vfio_route_change = accel_irqchip_begin_route_changes();
693
vfio_pci_add_kvm_msi_virq(vdev, vector, nr, true);
694
- kvm_irqchip_commit_route_changes(&vfio_route_change);
694
+ accel_irqchip_commit_route_changes(&vfio_route_change);
695
vfio_connect_kvm_msi_virq(vector, nr);
696
}
697
}
@@ -800,7 +800,7 @@ void vfio_pci_commit_kvm_msi_virq_batch(VFIOPCIDevice *vdev)
800
assert(vdev->defer_kvm_irq_routing);
801
vdev->defer_kvm_irq_routing = false;
802
803
- kvm_irqchip_commit_route_changes(&vfio_route_change);
803
+ accel_irqchip_commit_route_changes(&vfio_route_change);
804
805
for (i = 0; i < vdev->nr_vectors; i++) {
806
vfio_connect_kvm_msi_virq(&vdev->msi_vectors[i], i);
include/system/kvm.h
-8
@@ -476,14 +476,6 @@ int kvm_irqchip_update_msi_route(KVMState *s, int virq, MSIMessage msg,
476
PCIDevice *dev);
477
void kvm_irqchip_commit_routes(KVMState *s);
478
479
-static inline void kvm_irqchip_commit_route_changes(AccelRouteChange *c)
480
-{
481
- if (c->changes) {
482
- kvm_irqchip_commit_routes(KVM_STATE(c->accel));
483
- c->changes = 0;
484
- }
485
-}
486
-
479
int kvm_irqchip_get_virq(KVMState *s);
480
void kvm_irqchip_release_virq(KVMState *s, int virq);
481
target/i386/kvm/kvm.c
+1
-1
@@ -6690,7 +6690,7 @@ void kvm_arch_init_irq_routing(KVMState *s)
6690
exit(1);
6691
}
6692
}
6693
- kvm_irqchip_commit_route_changes(&c);
6693
+ accel_irqchip_commit_route_changes(&c);
6694
}
6695
}
6696