mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-12-11 16:00:50 -07:00
tpm-backend: store TPMIf interface, improve backend_init()
Store the TPM interface, the actual object may be different from TPMState. Keep a reference on the interface, and check the backend wasn't already initialized. Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by: Stefan Berger <stefanb@linux.vnet.ibm.com> Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
This commit is contained in:
parent
67af320cd6
commit
8a89c9ac15
6 changed files with 18 additions and 11 deletions
|
|
@ -43,9 +43,15 @@ enum TpmType tpm_backend_get_type(TPMBackend *s)
|
|||
return k->type;
|
||||
}
|
||||
|
||||
int tpm_backend_init(TPMBackend *s, TPMState *state)
|
||||
int tpm_backend_init(TPMBackend *s, TPMIf *tpmif)
|
||||
{
|
||||
s->tpm_state = state;
|
||||
if (s->tpmif) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
s->tpmif = tpmif;
|
||||
object_ref(OBJECT(tpmif));
|
||||
|
||||
s->had_startup_error = false;
|
||||
|
||||
return 0;
|
||||
|
|
@ -193,6 +199,7 @@ static void tpm_backend_instance_finalize(Object *obj)
|
|||
{
|
||||
TPMBackend *s = TPM_BACKEND(obj);
|
||||
|
||||
object_unref(OBJECT(s->tpmif));
|
||||
g_free(s->id);
|
||||
tpm_backend_thread_end(s);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue