On 7/7/20 12:20 AM, Philippe Mathieu-Daudé wrote:
Hi Stefan,

On 7/7/20 6:05 AM, Stefan Berger wrote:
Exit on TPM backend failures in the same way as the TPM CRB and TIS device
models do.
Maybe the other models are not the best examples ;)

At least they are known to report the error...



Signed-off-by: Stefan Berger <stef...@linux.ibm.com>
---
  hw/tpm/tpm_spapr.c | 5 ++++-
  1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/hw/tpm/tpm_spapr.c b/hw/tpm/tpm_spapr.c
index cb4dfd1e6a..8288ab0a15 100644
--- a/hw/tpm/tpm_spapr.c
+++ b/hw/tpm/tpm_spapr.c
@@ -306,7 +306,10 @@ static void tpm_spapr_reset(SpaprVioDevice *dev)
                              TPM_SPAPR_BUFFER_MAX);
tpm_backend_reset(s->be_driver);
-    tpm_spapr_do_startup_tpm(s, s->be_buffer_size);
+
+    if (tpm_spapr_do_startup_tpm(s, s->be_buffer_size) < 0) {
I don't see error reported, how users can know the cause of the exit?


virt-manager does report the error then. It seems to be taking it from the last error message reported in the emulator backend when TPM_INIT fails with error code 0x101:

error: internal error: qemu unexpectedly closed the monitor: 2020-07-07T12:49:28.333928Z qemu-system-ppc64: tpm-emulator: TPM result for CMD_INIT: 0x101 operation failed



+        exit(1);
What about using this instead?

            qemu_system_shutdown_request(SHUTDOWN_CAUSE_HOST_ERROR);

It doesn't have any effect, the VM just keeps on running. So the exit(1) is better and does report an error.



Reply via email to