45 lines
1.8 KiB
Diff
45 lines
1.8 KiB
Diff
|
|
From c4d618ea0dc507084d9c1e2b61e58691a73c2cf4 Mon Sep 17 00:00:00 2001
|
||
|
|
From: Susanooo <zhangchujun_yewu@cmss.chinamobile.com>
|
||
|
|
Date: Thu, 24 Oct 2024 10:10:34 +0800
|
||
|
|
Subject: [PATCH] tests: Wait for migration completion on destination QEMU to
|
||
|
|
avoid failures
|
||
|
|
MIME-Version: 1.0
|
||
|
|
Content-Type: text/plain; charset=UTF-8
|
||
|
|
Content-Transfer-Encoding: 8bit
|
||
|
|
|
||
|
|
Rather than waiting for the completion of migration on the source side,
|
||
|
|
wait for it on the destination QEMU side to avoid accessing the TPM TIS
|
||
|
|
memory mapped registers before QEMU could restore their state. This
|
||
|
|
error condition could be triggered on busy systems where the destination
|
||
|
|
QEMU did not have enough time to restore the TIS state while the test case
|
||
|
|
was already reading its registers. The test case was for example reading
|
||
|
|
the STS register and received an unexpected value (0xffffffff), whic
|
||
|
|
lead to a segmentation fault later on due to trying to read 0xffff bytes
|
||
|
|
from the TIS into a buffer.
|
||
|
|
|
||
|
|
Cc: <qemu-stable@nongnu.org>
|
||
|
|
Reported-by: Fabiano Rosas <farosas@suse.de>
|
||
|
|
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
|
||
|
|
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
|
||
|
|
Signed-off-by: zhangchujun <zhangchujun_yewu@cmss.chinamobile.com>
|
||
|
|
---
|
||
|
|
tests/qtest/tpm-tests.c | 2 +-
|
||
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||
|
|
|
||
|
|
diff --git a/tests/qtest/tpm-tests.c b/tests/qtest/tpm-tests.c
|
||
|
|
index fb94496bbd..197714f8d9 100644
|
||
|
|
--- a/tests/qtest/tpm-tests.c
|
||
|
|
+++ b/tests/qtest/tpm-tests.c
|
||
|
|
@@ -114,7 +114,7 @@ void tpm_test_swtpm_migration_test(const char *src_tpm_path,
|
||
|
|
sizeof(tpm_pcrread_resp));
|
||
|
|
|
||
|
|
tpm_util_migrate(src_qemu, uri);
|
||
|
|
- tpm_util_wait_for_migration_complete(src_qemu);
|
||
|
|
+ tpm_util_wait_for_migration_complete(dst_qemu);
|
||
|
|
|
||
|
|
tpm_util_pcrread(dst_qemu, tx, tpm_pcrread_resp,
|
||
|
|
sizeof(tpm_pcrread_resp));
|
||
|
|
--
|
||
|
|
2.41.0.windows.1
|
||
|
|
|