On Fri, 16 Jan 2026 at 19:31, Mohamed Mediouni <[email protected]> wrote:
> GICv3 state save-restore is currently not implemented yet.
>
> Signed-off-by: Mohamed Mediouni <[email protected]>
> Reviewed-by: Pierrick Bouvier <[email protected]>
> ---
> hw/intc/arm_gicv3_whpx.c | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> diff --git a/hw/intc/arm_gicv3_whpx.c b/hw/intc/arm_gicv3_whpx.c
> index 9bc036d1ac..84ef16d9b7 100644
> --- a/hw/intc/arm_gicv3_whpx.c
> +++ b/hw/intc/arm_gicv3_whpx.c
> @@ -17,6 +17,7 @@
> #include "system/whpx-internal.h"
> #include "gicv3_internal.h"
> #include "vgic_common.h"
> +#include "migration/blocker.h"
> #include "qom/object.h"
> #include "target/arm/cpregs.h"
>
> @@ -204,6 +205,15 @@ static void whpx_gicv3_realize(DeviceState *dev, Error
> **errp)
> error_setg(errp, "Nested virtualisation not currently supported by
> WHPX.");
> return;
> }
> +
> + Error *whpx_migration_blocker = NULL;
> +
> + error_setg(&whpx_migration_blocker,
> + "Live migration disabled because GIC state save/restore not
> supported on WHPX");
> + if (migrate_add_blocker(&whpx_migration_blocker, errp)) {
> + error_free(whpx_migration_blocker);
* This error_free() might cause an issue, IIUC
migrate_add_blocker(&wphx_migration_blocker
-> migrate_add_blocker_modes(reasonp,
-> is_only_migratable(reasonp, ...) / is_busy(reasonp, ...)
...
error_propagate_prepend(errp, *reasonp, ...)
*reasonp = NULL;
return true;
* ie. when error_propagate_prepend() happens, errp starts pointing to
*reasonp, so *reasonp is set to NULL above. Instead of error_free() ->
say -> error_report_err(errp) above;
Thank you.
---
- Prasad