Return true in case we had to wait for an outstanding response to come back, false otherwise.
Signed-off-by: Stefan Berger <stef...@linux.vnet.ibm.com> diff --git a/backends/tpm.c b/backends/tpm.c index 375587e743..1f75883d8a 100644 --- a/backends/tpm.c +++ b/backends/tpm.c @@ -49,11 +49,15 @@ static int tpm_backend_worker_thread(gpointer data) return 0; } -void tpm_backend_finish_sync(TPMBackend *s) +bool tpm_backend_finish_sync(TPMBackend *s) { + bool ret = s->cmd != NULL; + while (s->cmd) { aio_poll(qemu_get_aio_context(), true); } + + return ret; } enum TpmType tpm_backend_get_type(TPMBackend *s) diff --git a/include/sysemu/tpm_backend.h b/include/sysemu/tpm_backend.h index 9e7451fb52..c35fe85c62 100644 --- a/include/sysemu/tpm_backend.h +++ b/include/sysemu/tpm_backend.h @@ -200,8 +200,10 @@ size_t tpm_backend_get_buffer_size(TPMBackend *s); * * Finish the pending command synchronously (this will call aio_poll() * on qemu main AIOContext until it ends) + * + * Returns true in case there was a pending command, false otherwise. */ -void tpm_backend_finish_sync(TPMBackend *s); +bool tpm_backend_finish_sync(TPMBackend *s); /** * tpm_backend_query_tpm: -- 2.21.0