On 10/09/2017 06:56 PM, Marc-André Lureau wrote:
> No need to store the mode in the backend, or to let the frontend set
> it itself.
>
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
> ---
> hw/tpm/tpm_int.h | 1 +
> include/sysemu/tpm_backend.h | 1 -
> backends/tpm.c | 4 ++--
> hw/tpm/tpm_tis.c | 3 +--
> tpm.c | 3 ++-
> 5 files changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/hw/tpm/tpm_int.h b/hw/tpm/tpm_int.h
> index 9c49325f03..90e97b9170 100644
> --- a/hw/tpm/tpm_int.h
> +++ b/hw/tpm/tpm_int.h
> @@ -30,6 +30,7 @@ typedef struct TPMIf {
> typedef struct TPMIfClass {
> InterfaceClass parent_class;
>
> + enum TpmModel model;
> void (*request_completed)(TPMIf *obj);
> } TPMIfClass;
>
> diff --git a/include/sysemu/tpm_backend.h b/include/sysemu/tpm_backend.h
> index 51dfc0de9c..b12ae5b625 100644
> --- a/include/sysemu/tpm_backend.h
> +++ b/include/sysemu/tpm_backend.h
> @@ -52,7 +52,6 @@ struct TPMBackend {
>
> /* <public> */
> char *id;
> - enum TpmModel fe_model;
>
> QLIST_ENTRY(TPMBackend) list;
> };
> diff --git a/backends/tpm.c b/backends/tpm.c
> index 7b108bd5d8..0c48d18775 100644
> --- a/backends/tpm.c
> +++ b/backends/tpm.c
> @@ -148,9 +148,10 @@ TPMInfo *tpm_backend_query_tpm(TPMBackend *s)
> {
> TPMInfo *info = g_new0(TPMInfo, 1);
> TPMBackendClass *k = TPM_BACKEND_GET_CLASS(s);
> + TPMIfClass *tic = TPM_IF_GET_CLASS(s->tpmif);
>
> info->id = g_strdup(s->id);
> - info->model = s->fe_model;
> + info->model = tic->model;
> if (k->get_tpm_options) {
> info->options = k->get_tpm_options(s);
> }
> @@ -204,7 +205,6 @@ static void tpm_backend_instance_init(Object *obj)
> tpm_backend_prop_get_opened,
> tpm_backend_prop_set_opened,
> NULL);
> - s->fe_model = -1;
> s->bh = qemu_bh_new(tpm_backend_request_completed_bh, s);
> }
>
> diff --git a/hw/tpm/tpm_tis.c b/hw/tpm/tpm_tis.c
> index 2fbc760730..3c8d246ac8 100644
> --- a/hw/tpm/tpm_tis.c
> +++ b/hw/tpm/tpm_tis.c
> @@ -1067,8 +1067,6 @@ static void tpm_tis_realizefn(DeviceState *dev, Error **errp)
> return;
> }
>
> - s->be_driver->fe_model = TPM_MODEL_TPM_TIS;
> -
> if (tpm_backend_init(s->be_driver, TPM_IF(s), errp)) {
> return;
> }
> @@ -1103,6 +1101,7 @@ static void tpm_tis_class_init(ObjectClass *klass, void *data)
> dc->props = tpm_tis_properties;
> dc->reset = tpm_tis_reset;
> dc->vmsd = &vmstate_tpm_tis;
> + tc->model = TPM_MODEL_TPM_TIS;
> tc->request_completed = tpm_tis_request_completed;
> }
>
> diff --git a/tpm.c b/tpm.c
> index 45520f555d..ce1543fcb4 100644
> --- a/tpm.c
> +++ b/tpm.c
> @@ -204,9 +204,10 @@ TPMInfoList *qmp_query_tpm(Error **errp)
> TPMInfoList *info, *head = NULL, *cur_item = NULL;
>
> QLIST_FOREACH(drv, &tpm_backends, list) {
> - if (!tpm_models[drv->fe_model]) {
> + if (!drv->tpmif) {
> continue;
> }
> +
> info = g_new0(TPMInfoList, 1);
> info->value = tpm_backend_query_tpm(drv);
>