From: Shameer Kolothum Date: Thu, 29 Jan 2026 13:32:05 +0000 (+0000) Subject: hw/arm/smmuv3: Block migration when accel is enabled X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=be0cf3c8f121f5c0ec398429666d2ef0e88aa37a;p=thirdparty%2Fqemu.git hw/arm/smmuv3: Block migration when accel is enabled Live migration is not supported when the SMMUv3 accelerator mode is enabled. Add a migration blocker to prevent migration in this configuration. Reviewed-by: Nicolin Chen Reviewed-by: Eric Auger Tested-by: Zhangfei Gao Reviewed-by: Jonathan Cameron Tested-by: Eric Auger Signed-off-by: Shameer Kolothum Message-id: 20260126104342.253965-28-skolothumtho@nvidia.com Signed-off-by: Peter Maydell --- diff --git a/hw/arm/smmuv3.c b/hw/arm/smmuv3.c index e301bb467d..2be056d792 100644 --- a/hw/arm/smmuv3.c +++ b/hw/arm/smmuv3.c @@ -20,6 +20,7 @@ #include "qemu/bitops.h" #include "hw/core/irq.h" #include "hw/core/sysbus.h" +#include "migration/blocker.h" #include "migration/vmstate.h" #include "hw/core/qdev-properties.h" #include "hw/core/qdev.h" @@ -1925,6 +1926,11 @@ static void smmu_realize(DeviceState *d, Error **errp) if (s->accel) { smmuv3_accel_init(s); + error_setg(&s->migration_blocker, "Migration not supported with SMMUv3 " + "accelerator mode enabled"); + if (migrate_add_blocker(&s->migration_blocker, errp) < 0) { + return; + } } c->parent_realize(d, &local_err); diff --git a/include/hw/arm/smmuv3.h b/include/hw/arm/smmuv3.h index 5616a8a2be..9c39acd5ca 100644 --- a/include/hw/arm/smmuv3.h +++ b/include/hw/arm/smmuv3.h @@ -68,6 +68,7 @@ struct SMMUv3State { bool accel; struct SMMUv3AccelState *s_accel; uint64_t msi_gpa; + Error *migration_blocker; }; typedef enum {