@samitouri / QOSamiQemu / commits / 520225c935

hw/intc/arm_gicv5: Add migration blocker

This initial version of the GICv5 will not support migration: * the spec is still only at EAC level, so the data to be migrated might in theory change before it is finalised * when we add support for missing features like EL2/EL3/Realm we might find we want to refactor the data structures we use * I still need to check against the proposed KVM GICv5 handling to see if there are any awkward mismatches that might affect how we want to store the data * it's experimental, so for pragmatic reasons I'm skipping it to get the initial version done faster Install a migration blocker to enforce this. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com> Message-id: 20260327111700.795099-7-peter.maydell@linaro.org

Peter Maydell committed Mar 27, 2026 at 11:16 UTC 520225c93558a9280b4d63effb0eecc7ba681911
1 file changed +8
hw/intc/arm_gicv5.c
+8
@@ -11,6 +11,7 @@
11 #include "qapi/error.h"
12 #include "qemu/log.h"
13 #include "trace.h"
14 +#include "migration/blocker.h"
15
16 OBJECT_DEFINE_TYPE(GICv5, gicv5, ARM_GICV5, ARM_GICV5_COMMON)
17
@@ -173,6 +174,7 @@ static void gicv5_realize(DeviceState *dev, Error **errp)
174 {
175 GICv5Common *cs = ARM_GICV5_COMMON(dev);
176 GICv5Class *gc = ARM_GICV5_GET_CLASS(dev);
177 + Error *migration_blocker = NULL;
178
179 ERRP_GUARD();
180
@@ -181,6 +183,12 @@ static void gicv5_realize(DeviceState *dev, Error **errp)
183 return;
184 }
185
186 + error_setg(&migration_blocker,
187 + "Live migration disabled: not yet supported by GICv5");
188 + if (migrate_add_blocker(&migration_blocker, errp)) {
189 + return;
190 + }
191 +
192 /*
193 * When we implement support for more than one interrupt domain,
194 * we will provide some QOM properties so the board can configure