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


Reply via email to