On Sat, Feb 11, 2023 at 01:48:57PM -1000, Richard Henderson wrote: > Just "return s->gbpa != SMMU_GBPA_RESET_VAL;".
I will update it. > > @@ -1512,6 +1553,10 @@ static const VMStateDescription vmstate_smmuv3 = { > > VMSTATE_END_OF_LIST(), > > }, > > + .subsections = (const VMStateDescription * []) { > > + &vmstate_gbpa, > > + NULL > > + } > > Actually, I suspect that you need a pre_load hook that resets gbpa, which > will then be overwritten if and only if the saved value != reset value. > Please correct me if I am wrong. From what I see, the initial for value GBPA will be set from smmu_reset_hold which is called from context of qemu_system_reset from qemu_init context. And migration will start after that in migration_incoming_process from qemu_main_loop context. I validated that also by printing the value of GBPA from vmstate_smmuv3 pre_load at migration without GPBA, and it is the same as SMMU_GBPA_RESET_VAL. Thanks, Mostafa