qemu-arm
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [RFC 4/6] tests: tpm-emu: Remove assert on TPM2_ST_NO_SESSIONS


From: Stefan Berger
Subject: Re: [RFC 4/6] tests: tpm-emu: Remove assert on TPM2_ST_NO_SESSIONS
Date: Tue, 2 Jun 2020 10:43:27 -0400
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.4.1

On 6/2/20 9:39 AM, Stefan Berger wrote:
On 6/1/20 6:21 AM, Eric Auger wrote:
While writing tests for checking the content of TPM2 and DSDT
along with TPM-TIS instantiation I attempted to reuse the
framework used for TPM-TIS tests. However While dumping the
ACPI tables I get an assert on TPM2_ST_NO_SESSIONS. My assumption
is maybe the other tests did not execute long enough to encounter
this. So I tentatively propose to remove the assert as it
does not seem to break other tests and enable the new ones.

Signed-off-by: Eric Auger <eric.auger@redhat.com>
---
  tests/qtest/tpm-emu.c | 1 -
  1 file changed, 1 deletion(-)

diff --git a/tests/qtest/tpm-emu.c b/tests/qtest/tpm-emu.c
index c43ac4aef8..298d0eec74 100644
--- a/tests/qtest/tpm-emu.c
+++ b/tests/qtest/tpm-emu.c
@@ -49,7 +49,6 @@ static void *tpm_emu_tpm_thread(void *data)
          s->tpm_msg->tag = be16_to_cpu(s->tpm_msg->tag);
          s->tpm_msg->len = be32_to_cpu(s->tpm_msg->len);
          g_assert_cmpint(s->tpm_msg->len, >=, minhlen);
-        g_assert_cmpint(s->tpm_msg->tag, ==, TPM2_ST_NO_SESSIONS);
You should not have to remove this. The tests are skipped if swtpm does not support TPM 2 via --tpm2 option. This would be a very old swtpm version, though. So, all tests are run with --tpm2 option and any response received from the TPM would be a TPM 2 response that should have TPM2_ST_NO_SESSIONS as the tag. I'd be curious what other value you are seeing there.


In hw/tpm/tpm_util.c tpm_util_test_tpmdev() we have a probing function that tries to determine whether the attached TPM is a TPM 1.2 or TPM 2. It sends a TPM 2 command first and I would say this is the only command we should see in this (fake) TPM emulation here. We respond with a TPM 2 command header [indicating failure], but the probing function should then not proceed to probe with the TPM 1.2 command.


            s->tpm_msg = g_realloc(s->tpm_msg, s->tpm_msg->len);
          qio_channel_read(ioc, (char *)&s->tpm_msg->code,






reply via email to

[Prev in Thread] Current Thread [Next in Thread]