tpm: extend TPM emulator with state migration support
commit38ab74e7ca6961f019d771c9500df2ab340693fa
authorStefan Berger <stefanb@linux.vnet.ibm.com>
Wed, 11 Oct 2017 14:36:53 +0000 (11 10:36 -0400)
committerStefan Berger <stefanb@linux.vnet.ibm.com>
Thu, 24 May 2018 16:07:04 +0000 (24 12:07 -0400)
tree51d6b49192756616aa1443b1c570e741a23b6889
parent4f50c1673a89b07f376ce5c42d22d79a79cd466d
tpm: extend TPM emulator with state migration support

Extend the TPM emulator backend device with state migration support.

The external TPM emulator 'swtpm' provides a protocol over
its control channel to retrieve its state blobs. We implement
functions for getting and setting the different state blobs.
In case the setting of the state blobs fails, we return a
negative errno code to fail the start of the VM.

Since we have an external TPM emulator, we need to make sure
that we do not migrate the state for as long as it is busy
processing a request. We need to wait for notification that
the request has completed processing.

Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
hw/tpm/tpm_emulator.c
hw/tpm/trace-events