summary refs log tree commit diff stats
path: root/hw/arm/virt.c
diff options
context:
space:
mode:
authorHaibo Xu <haibo.xu@linaro.org>2025-07-07 18:40:27 +0200
committerPeter Maydell <peter.maydell@linaro.org>2025-07-10 09:25:37 +0100
commit66ba6d1367d7e81d705430ff611af01280953992 (patch)
tree3c803f350555db0e69ee97805bfc89ae10f76dc7 /hw/arm/virt.c
parent930180f3b9a292639eb894f1ca846683834ed4b7 (diff)
downloadfocaccia-qemu-66ba6d1367d7e81d705430ff611af01280953992.tar.gz
focaccia-qemu-66ba6d1367d7e81d705430ff611af01280953992.zip
hw/arm: Allow setting KVM vGIC maintenance IRQ
Allow virt arm machine to set the interrupt ID for the KVM
GIC maintenance interrupt.

This setting must be done before the KVM_DEV_ARM_VGIC_CTRL_INIT
hence the choice to perform the setting in the GICv3 realize
instead of proceeding the same way as kvm_arm_pmu_set_irq().

Signed-off-by: Haibo Xu <haibo.xu@linaro.org>
Signed-off-by: Miguel Luis <miguel.luis@oracle.com>
Signed-off-by: Eric Auger <eric.auger@redhat.com>
Message-id: 20250707164129.1167837-2-eric.auger@redhat.com
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'hw/arm/virt.c')
-rw-r--r--hw/arm/virt.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index 394e8b5301..c9f3991937 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -833,6 +833,9 @@ static void create_gic(VirtMachineState *vms, MemoryRegion *mem)
                                          OBJECT(mem), &error_fatal);
                 qdev_prop_set_bit(vms->gic, "has-lpi", true);
             }
+        } else if (vms->virt) {
+            qdev_prop_set_uint32(vms->gic, "maintenance-interrupt-id",
+                                 ARCH_GIC_MAINT_IRQ);
         }
     } else {
         if (!kvm_irqchip_in_kernel()) {