On 4/11/22 10:47, Anthony PERARD via wrote:
From: Anthony PERARD <anthony.per...@citrix.com> At the moment, there doesn't seems to be any way to know that QEMU made modification to the command buffer. This is potentially an issue on Xen while migrating a guest, as modification to the buffer after the migration as started could be ignored and not transfered to the destination. Mark the memory region of the command buffer as dirty once a request is completed. Signed-off-by: Anthony PERARD <anthony.per...@citrix.com>
Reviewed-by: Stefan Berger <stef...@linux.ibm.com>
--- I have only read code to find out whether the tpm-crb device was fine with regards to migration, and I don't think there's anything that could mark the memory region as dirty once a request is completed. There is one call to memory_region_get_ram_ptr(), but nothing seems to be done with the pointer is regards to ram migration. Am I wrong? Thanks. --- hw/tpm/tpm_crb.c | 1 + 1 file changed, 1 insertion(+) diff --git a/hw/tpm/tpm_crb.c b/hw/tpm/tpm_crb.c index aa9c00aad3..67db594c48 100644 --- a/hw/tpm/tpm_crb.c +++ b/hw/tpm/tpm_crb.c @@ -197,6 +197,7 @@ static void tpm_crb_request_completed(TPMIf *ti, int ret) ARRAY_FIELD_DP32(s->regs, CRB_CTRL_STS, tpmSts, 1); /* fatal error */ } + memory_region_set_dirty(&s->cmdmem, 0, CRB_CTRL_CMD_SIZE); } static enum TPMVersion tpm_crb_get_version(TPMIf *ti)