OSDN Git Service

tpm_crb: mark command buffer as dirty on request completion
authorAnthony PERARD <anthony.perard@citrix.com>
Mon, 11 Apr 2022 14:47:49 +0000 (15:47 +0100)
committerStefan Berger <stefanb@linux.ibm.com>
Wed, 8 Jun 2022 00:37:25 +0000 (20:37 -0400)
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.perard@citrix.com>
Reviewed-by: Stefan Berger <stefanb@linux.ibm.com>
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
Message-id: 20220411144749.47185-1-anthony.perard@citrix.com

hw/tpm/tpm_crb.c

index aa9c00a..67db594 100644 (file)
@@ -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)