Message ID | 20171009225623.29232-26-marcandre.lureau@redhat.com |
---|---|
State | New |
Headers | show |
Series | TPM: code cleanup & CRB device | expand |
On 10/09/2017 06:56 PM, Marc-André Lureau wrote: > Backend can give more accurate error description, and lift out the job > from the frontend. > > Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by: Stefan Berger <stefanb@linux.vnet.ibm.com> > --- > include/sysemu/tpm_backend.h | 3 ++- > backends/tpm.c | 3 ++- > hw/tpm/tpm_tis.c | 4 +--- > 3 files changed, 5 insertions(+), 5 deletions(-) > > diff --git a/include/sysemu/tpm_backend.h b/include/sysemu/tpm_backend.h > index dd4fb288ea..51dfc0de9c 100644 > --- a/include/sysemu/tpm_backend.h > +++ b/include/sysemu/tpm_backend.h > @@ -100,12 +100,13 @@ enum TpmType tpm_backend_get_type(TPMBackend *s); > * @s: the backend to initialized > * @tpmif: TPM interface > * @datacb: callback for sending data to frontend > + * @errp: a pointer to return the #Error object if an error occurs. > * > * Initialize the backend with the given variables. > * > * Returns 0 on success. > */ > -int tpm_backend_init(TPMBackend *s, TPMIf *tpmif); > +int tpm_backend_init(TPMBackend *s, TPMIf *tpmif, Error **errp); > > /** > * tpm_backend_startup_tpm: > diff --git a/backends/tpm.c b/backends/tpm.c > index 58f823d54c..7b108bd5d8 100644 > --- a/backends/tpm.c > +++ b/backends/tpm.c > @@ -54,9 +54,10 @@ enum TpmType tpm_backend_get_type(TPMBackend *s) > return k->type; > } > > -int tpm_backend_init(TPMBackend *s, TPMIf *tpmif) > +int tpm_backend_init(TPMBackend *s, TPMIf *tpmif, Error **errp) > { > if (s->tpmif) { > + error_setg(errp, "TPM backend '%s' is already initialized", s->id); > return -1; > } > > diff --git a/hw/tpm/tpm_tis.c b/hw/tpm/tpm_tis.c > index 355427ab29..2fbc760730 100644 > --- a/hw/tpm/tpm_tis.c > +++ b/hw/tpm/tpm_tis.c > @@ -1069,9 +1069,7 @@ static void tpm_tis_realizefn(DeviceState *dev, Error **errp) > > s->be_driver->fe_model = TPM_MODEL_TPM_TIS; > > - if (tpm_backend_init(s->be_driver, TPM_IF(s))) { > - error_setg(errp, "tpm_tis: backend driver with id %s could not be " > - "initialized", s->backend); > + if (tpm_backend_init(s->be_driver, TPM_IF(s), errp)) { > return; > } >
diff --git a/include/sysemu/tpm_backend.h b/include/sysemu/tpm_backend.h index dd4fb288ea..51dfc0de9c 100644 --- a/include/sysemu/tpm_backend.h +++ b/include/sysemu/tpm_backend.h @@ -100,12 +100,13 @@ enum TpmType tpm_backend_get_type(TPMBackend *s); * @s: the backend to initialized * @tpmif: TPM interface * @datacb: callback for sending data to frontend + * @errp: a pointer to return the #Error object if an error occurs. * * Initialize the backend with the given variables. * * Returns 0 on success. */ -int tpm_backend_init(TPMBackend *s, TPMIf *tpmif); +int tpm_backend_init(TPMBackend *s, TPMIf *tpmif, Error **errp); /** * tpm_backend_startup_tpm: diff --git a/backends/tpm.c b/backends/tpm.c index 58f823d54c..7b108bd5d8 100644 --- a/backends/tpm.c +++ b/backends/tpm.c @@ -54,9 +54,10 @@ enum TpmType tpm_backend_get_type(TPMBackend *s) return k->type; } -int tpm_backend_init(TPMBackend *s, TPMIf *tpmif) +int tpm_backend_init(TPMBackend *s, TPMIf *tpmif, Error **errp) { if (s->tpmif) { + error_setg(errp, "TPM backend '%s' is already initialized", s->id); return -1; } diff --git a/hw/tpm/tpm_tis.c b/hw/tpm/tpm_tis.c index 355427ab29..2fbc760730 100644 --- a/hw/tpm/tpm_tis.c +++ b/hw/tpm/tpm_tis.c @@ -1069,9 +1069,7 @@ static void tpm_tis_realizefn(DeviceState *dev, Error **errp) s->be_driver->fe_model = TPM_MODEL_TPM_TIS; - if (tpm_backend_init(s->be_driver, TPM_IF(s))) { - error_setg(errp, "tpm_tis: backend driver with id %s could not be " - "initialized", s->backend); + if (tpm_backend_init(s->be_driver, TPM_IF(s), errp)) { return; }
Backend can give more accurate error description, and lift out the job from the frontend. Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> --- include/sysemu/tpm_backend.h | 3 ++- backends/tpm.c | 3 ++- hw/tpm/tpm_tis.c | 4 +--- 3 files changed, 5 insertions(+), 5 deletions(-)