Revert "tpm: Clean up error reporting in tpm_init_tpmdev()"
commitd64072c0ac6f73413026695bb33a4aa232e69617
authorMarkus Armbruster <armbru@redhat.com>
Thu, 23 Jul 2020 11:58:44 +0000 (23 13:58 +0200)
committerStefan Berger <stefanb@linux.vnet.ibm.com>
Fri, 24 Jul 2020 16:44:13 +0000 (24 12:44 -0400)
treeca4e8b8ba6ecad823f82f136525c86000fa2e3c6
parent7adfbea8fd1efce36019a0c2f198ca73be9d3f18
Revert "tpm: Clean up error reporting in tpm_init_tpmdev()"

This reverts commit d10e05f15d5c3dd5e5cc59c5dfff460d89d48580.

We report some -tpmdev failures, but then continue as if all was fine.
Reproducer:

    $ qemu-system-x86_64 -nodefaults -S -display none -monitor stdio -chardev null,id=tpm0 -tpmdev emulator,id=tpm0,chardev=chrtpm -device tpm-tis,tpmdev=tpm0
    qemu-system-x86_64: -tpmdev emulator,id=tpm0,chardev=chrtpm: tpm-emulator: tpm chardev 'chrtpm' not found.
    qemu-system-x86_64: -tpmdev emulator,id=tpm0,chardev=chrtpm: tpm-emulator: Could not cleanly shutdown the TPM: No such file or directory
    QEMU 5.0.90 monitor - type 'help' for more information
    (qemu) qemu-system-x86_64: -device tpm-tis,tpmdev=tpm0: Property 'tpm-tis.tpmdev' can't find value 'tpm0'
    $ echo $?
    1

This is a regression caused by commit d10e05f15d "tpm: Clean up error
reporting in tpm_init_tpmdev()".  It's incomplete: be->create(opts)
continues to use error_report(), and we don't set an error when it
fails.

I figure converting the create() methods to Error would make some
sense, but I'm not sure it's worth the effort right now.  Revert the
broken commit instead, and add a comment to tpm_init_tpmdev().

Straightforward conflict in tpm.c resolved.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Stefan Berger <stefanb@linux.ibm.com>
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
include/sysemu/tpm.h
softmmu/vl.c
stubs/tpm.c
tpm.c