[Qemu-devel] [PATCH 11/42] tpm: remove unused TPMBackendCmd

Marc-André Lureau posted 42 patches 8 years, 4 months ago
[Qemu-devel] [PATCH 11/42] tpm: remove unused TPMBackendCmd
Posted by Marc-André Lureau 8 years, 4 months ago
There is only handling of request so far in both backends.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 include/sysemu/tpm_backend.h |  9 +--------
 backends/tpm.c               |  7 ++-----
 hw/tpm/tpm_emulator.c        | 42 ++++++++++++++++--------------------------
 hw/tpm/tpm_passthrough.c     | 29 ++++++++++-------------------
 4 files changed, 29 insertions(+), 58 deletions(-)

diff --git a/include/sysemu/tpm_backend.h b/include/sysemu/tpm_backend.h
index b08f985500..7d7ebfc21d 100644
--- a/include/sysemu/tpm_backend.h
+++ b/include/sysemu/tpm_backend.h
@@ -32,13 +32,6 @@ typedef struct TPMBackend TPMBackend;
 
 typedef void (TPMRecvDataCB)(TPMState *, uint8_t locty, bool selftest_done);
 
-typedef enum TPMBackendCmd {
-    TPM_BACKEND_CMD_INIT = 1,
-    TPM_BACKEND_CMD_PROCESS_CMD,
-    TPM_BACKEND_CMD_END,
-    TPM_BACKEND_CMD_TPM_RESET,
-} TPMBackendCmd;
-
 struct TPMBackend {
     Object parent;
 
@@ -83,7 +76,7 @@ struct TPMBackendClass {
 
     void (*opened)(TPMBackend *s, Error **errp);
 
-    void (*handle_request)(TPMBackend *s, TPMBackendCmd cmd);
+    void (*handle_request)(TPMBackend *s);
 };
 
 /**
diff --git a/backends/tpm.c b/backends/tpm.c
index dc750d48c9..34e82085ec 100644
--- a/backends/tpm.c
+++ b/backends/tpm.c
@@ -25,13 +25,12 @@ static void tpm_backend_worker_thread(gpointer data, gpointer user_data)
     TPMBackendClass *k  = TPM_BACKEND_GET_CLASS(s);
 
     assert(k->handle_request != NULL);
-    k->handle_request(s, (TPMBackendCmd)data);
+    k->handle_request(s);
 }
 
 static void tpm_backend_thread_end(TPMBackend *s)
 {
     if (s->thread_pool) {
-        g_thread_pool_push(s->thread_pool, (gpointer)TPM_BACKEND_CMD_END, NULL);
         g_thread_pool_free(s->thread_pool, FALSE, TRUE);
         s->thread_pool = NULL;
     }
@@ -64,7 +63,6 @@ int tpm_backend_startup_tpm(TPMBackend *s)
 
     s->thread_pool = g_thread_pool_new(tpm_backend_worker_thread, s, 1, TRUE,
                                        NULL);
-    g_thread_pool_push(s->thread_pool, (gpointer)TPM_BACKEND_CMD_INIT, NULL);
 
     res = k->startup_tpm ? k->startup_tpm(s) : 0;
 
@@ -80,8 +78,7 @@ bool tpm_backend_had_startup_error(TPMBackend *s)
 
 void tpm_backend_deliver_request(TPMBackend *s)
 {
-    g_thread_pool_push(s->thread_pool, (gpointer)TPM_BACKEND_CMD_PROCESS_CMD,
-                       NULL);
+    g_thread_pool_push(s->thread_pool, NULL, NULL);
 }
 
 void tpm_backend_reset(TPMBackend *s)
diff --git a/hw/tpm/tpm_emulator.c b/hw/tpm/tpm_emulator.c
index bb5a65b492..dadc264182 100644
--- a/hw/tpm/tpm_emulator.c
+++ b/hw/tpm/tpm_emulator.c
@@ -172,39 +172,29 @@ static int tpm_emulator_set_locality(TPMEmulator *tpm_emu, uint8_t locty_number)
     return 0;
 }
 
-static void tpm_emulator_handle_request(TPMBackend *tb, TPMBackendCmd cmd)
+static void tpm_emulator_handle_request(TPMBackend *tb)
 {
     TPMEmulator *tpm_emu = TPM_EMULATOR(tb);
     TPMLocality *locty = NULL;
     bool selftest_done = false;
     Error *err = NULL;
 
-    DPRINTF("processing command type %d", cmd);
-
-    switch (cmd) {
-    case TPM_BACKEND_CMD_PROCESS_CMD:
-        locty = tb->tpm_state->locty_data;
-        if (tpm_emulator_set_locality(tpm_emu,
-                                      tb->tpm_state->locty_number) < 0 ||
-            tpm_emulator_unix_tx_bufs(tpm_emu, locty->w_buffer.buffer,
-                                      locty->w_offset, locty->r_buffer.buffer,
-                                      locty->r_buffer.size, &selftest_done,
-                                      &err) < 0) {
-            tpm_util_write_fatal_error_response(locty->r_buffer.buffer,
-                                                locty->r_buffer.size);
-            error_report_err(err);
-        }
-
-        tb->recv_data_callback(tb->tpm_state, tb->tpm_state->locty_number,
-                               selftest_done);
-
-        break;
-    case TPM_BACKEND_CMD_INIT:
-    case TPM_BACKEND_CMD_END:
-    case TPM_BACKEND_CMD_TPM_RESET:
-        /* nothing to do */
-        break;
+    DPRINTF("processing TPM command");
+
+    locty = tb->tpm_state->locty_data;
+    if (tpm_emulator_set_locality(tpm_emu,
+                                  tb->tpm_state->locty_number) < 0 ||
+        tpm_emulator_unix_tx_bufs(tpm_emu, locty->w_buffer.buffer,
+                                  locty->w_offset, locty->r_buffer.buffer,
+                                  locty->r_buffer.size, &selftest_done,
+                                  &err) < 0) {
+        tpm_util_write_fatal_error_response(locty->r_buffer.buffer,
+                                            locty->r_buffer.size);
+        error_report_err(err);
     }
+
+    tb->recv_data_callback(tb->tpm_state, tb->tpm_state->locty_number,
+                           selftest_done);
 }
 
 static int tpm_emulator_probe_caps(TPMEmulator *tpm_emu)
diff --git a/hw/tpm/tpm_passthrough.c b/hw/tpm/tpm_passthrough.c
index d9da99bc8e..5cd988e8a4 100644
--- a/hw/tpm/tpm_passthrough.c
+++ b/hw/tpm/tpm_passthrough.c
@@ -149,29 +149,20 @@ static int tpm_passthrough_unix_transfer(TPMPassthruState *tpm_pt,
                                         selftest_done);
 }
 
-static void tpm_passthrough_handle_request(TPMBackend *tb, TPMBackendCmd cmd)
+static void tpm_passthrough_handle_request(TPMBackend *tb)
 {
     TPMPassthruState *tpm_pt = TPM_PASSTHROUGH(tb);
     bool selftest_done = false;
 
-    DPRINTF("tpm_passthrough: processing command type %d\n", cmd);
-
-    switch (cmd) {
-    case TPM_BACKEND_CMD_PROCESS_CMD:
-        tpm_passthrough_unix_transfer(tpm_pt,
-                                      tb->tpm_state->locty_data,
-                                      &selftest_done);
-
-        tb->recv_data_callback(tb->tpm_state,
-                               tb->tpm_state->locty_number,
-                               selftest_done);
-        break;
-    case TPM_BACKEND_CMD_INIT:
-    case TPM_BACKEND_CMD_END:
-    case TPM_BACKEND_CMD_TPM_RESET:
-        /* nothing to do */
-        break;
-    }
+    DPRINTF("tpm_passthrough: processing command\n");
+
+    tpm_passthrough_unix_transfer(tpm_pt,
+                                  tb->tpm_state->locty_data,
+                                  &selftest_done);
+
+    tb->recv_data_callback(tb->tpm_state,
+                           tb->tpm_state->locty_number,
+                           selftest_done);
 }
 
 static void tpm_passthrough_reset(TPMBackend *tb)
-- 
2.14.1.146.gd35faa819


Re: [Qemu-devel] [PATCH 11/42] tpm: remove unused TPMBackendCmd
Posted by Stefan Berger 8 years, 3 months ago
On 10/09/2017 06:55 PM, Marc-André Lureau wrote:
> There is only handling of request so far in both backends.
>
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>

Review-by: Stefan Berger <stefanb@linux.vnet.ibm.com>

> ---
>   include/sysemu/tpm_backend.h |  9 +--------
>   backends/tpm.c               |  7 ++-----
>   hw/tpm/tpm_emulator.c        | 42 ++++++++++++++++--------------------------
>   hw/tpm/tpm_passthrough.c     | 29 ++++++++++-------------------
>   4 files changed, 29 insertions(+), 58 deletions(-)
>
> diff --git a/include/sysemu/tpm_backend.h b/include/sysemu/tpm_backend.h
> index b08f985500..7d7ebfc21d 100644
> --- a/include/sysemu/tpm_backend.h
> +++ b/include/sysemu/tpm_backend.h
> @@ -32,13 +32,6 @@ typedef struct TPMBackend TPMBackend;
>   
>   typedef void (TPMRecvDataCB)(TPMState *, uint8_t locty, bool selftest_done);
>   
> -typedef enum TPMBackendCmd {
> -    TPM_BACKEND_CMD_INIT = 1,
> -    TPM_BACKEND_CMD_PROCESS_CMD,
> -    TPM_BACKEND_CMD_END,
> -    TPM_BACKEND_CMD_TPM_RESET,
> -} TPMBackendCmd;
> -
>   struct TPMBackend {
>       Object parent;
>   
> @@ -83,7 +76,7 @@ struct TPMBackendClass {
>   
>       void (*opened)(TPMBackend *s, Error **errp);
>   
> -    void (*handle_request)(TPMBackend *s, TPMBackendCmd cmd);
> +    void (*handle_request)(TPMBackend *s);
>   };
>   
>   /**
> diff --git a/backends/tpm.c b/backends/tpm.c
> index dc750d48c9..34e82085ec 100644
> --- a/backends/tpm.c
> +++ b/backends/tpm.c
> @@ -25,13 +25,12 @@ static void tpm_backend_worker_thread(gpointer data, gpointer user_data)
>       TPMBackendClass *k  = TPM_BACKEND_GET_CLASS(s);
>   
>       assert(k->handle_request != NULL);
> -    k->handle_request(s, (TPMBackendCmd)data);
> +    k->handle_request(s);
>   }
>   
>   static void tpm_backend_thread_end(TPMBackend *s)
>   {
>       if (s->thread_pool) {
> -        g_thread_pool_push(s->thread_pool, (gpointer)TPM_BACKEND_CMD_END, NULL);
>           g_thread_pool_free(s->thread_pool, FALSE, TRUE);
>           s->thread_pool = NULL;
>       }
> @@ -64,7 +63,6 @@ int tpm_backend_startup_tpm(TPMBackend *s)
>   
>       s->thread_pool = g_thread_pool_new(tpm_backend_worker_thread, s, 1, TRUE,
>                                          NULL);
> -    g_thread_pool_push(s->thread_pool, (gpointer)TPM_BACKEND_CMD_INIT, NULL);
>   
>       res = k->startup_tpm ? k->startup_tpm(s) : 0;
>   
> @@ -80,8 +78,7 @@ bool tpm_backend_had_startup_error(TPMBackend *s)
>   
>   void tpm_backend_deliver_request(TPMBackend *s)
>   {
> -    g_thread_pool_push(s->thread_pool, (gpointer)TPM_BACKEND_CMD_PROCESS_CMD,
> -                       NULL);
> +    g_thread_pool_push(s->thread_pool, NULL, NULL);
>   }
>   
>   void tpm_backend_reset(TPMBackend *s)
> diff --git a/hw/tpm/tpm_emulator.c b/hw/tpm/tpm_emulator.c
> index bb5a65b492..dadc264182 100644
> --- a/hw/tpm/tpm_emulator.c
> +++ b/hw/tpm/tpm_emulator.c
> @@ -172,39 +172,29 @@ static int tpm_emulator_set_locality(TPMEmulator *tpm_emu, uint8_t locty_number)
>       return 0;
>   }
>   
> -static void tpm_emulator_handle_request(TPMBackend *tb, TPMBackendCmd cmd)
> +static void tpm_emulator_handle_request(TPMBackend *tb)
>   {
>       TPMEmulator *tpm_emu = TPM_EMULATOR(tb);
>       TPMLocality *locty = NULL;
>       bool selftest_done = false;
>       Error *err = NULL;
>   
> -    DPRINTF("processing command type %d", cmd);
> -
> -    switch (cmd) {
> -    case TPM_BACKEND_CMD_PROCESS_CMD:
> -        locty = tb->tpm_state->locty_data;
> -        if (tpm_emulator_set_locality(tpm_emu,
> -                                      tb->tpm_state->locty_number) < 0 ||
> -            tpm_emulator_unix_tx_bufs(tpm_emu, locty->w_buffer.buffer,
> -                                      locty->w_offset, locty->r_buffer.buffer,
> -                                      locty->r_buffer.size, &selftest_done,
> -                                      &err) < 0) {
> -            tpm_util_write_fatal_error_response(locty->r_buffer.buffer,
> -                                                locty->r_buffer.size);
> -            error_report_err(err);
> -        }
> -
> -        tb->recv_data_callback(tb->tpm_state, tb->tpm_state->locty_number,
> -                               selftest_done);
> -
> -        break;
> -    case TPM_BACKEND_CMD_INIT:
> -    case TPM_BACKEND_CMD_END:
> -    case TPM_BACKEND_CMD_TPM_RESET:
> -        /* nothing to do */
> -        break;
> +    DPRINTF("processing TPM command");
> +
> +    locty = tb->tpm_state->locty_data;
> +    if (tpm_emulator_set_locality(tpm_emu,
> +                                  tb->tpm_state->locty_number) < 0 ||
> +        tpm_emulator_unix_tx_bufs(tpm_emu, locty->w_buffer.buffer,
> +                                  locty->w_offset, locty->r_buffer.buffer,
> +                                  locty->r_buffer.size, &selftest_done,
> +                                  &err) < 0) {
> +        tpm_util_write_fatal_error_response(locty->r_buffer.buffer,
> +                                            locty->r_buffer.size);
> +        error_report_err(err);
>       }
> +
> +    tb->recv_data_callback(tb->tpm_state, tb->tpm_state->locty_number,
> +                           selftest_done);
>   }
>   
>   static int tpm_emulator_probe_caps(TPMEmulator *tpm_emu)
> diff --git a/hw/tpm/tpm_passthrough.c b/hw/tpm/tpm_passthrough.c
> index d9da99bc8e..5cd988e8a4 100644
> --- a/hw/tpm/tpm_passthrough.c
> +++ b/hw/tpm/tpm_passthrough.c
> @@ -149,29 +149,20 @@ static int tpm_passthrough_unix_transfer(TPMPassthruState *tpm_pt,
>                                           selftest_done);
>   }
>   
> -static void tpm_passthrough_handle_request(TPMBackend *tb, TPMBackendCmd cmd)
> +static void tpm_passthrough_handle_request(TPMBackend *tb)
>   {
>       TPMPassthruState *tpm_pt = TPM_PASSTHROUGH(tb);
>       bool selftest_done = false;
>   
> -    DPRINTF("tpm_passthrough: processing command type %d\n", cmd);
> -
> -    switch (cmd) {
> -    case TPM_BACKEND_CMD_PROCESS_CMD:
> -        tpm_passthrough_unix_transfer(tpm_pt,
> -                                      tb->tpm_state->locty_data,
> -                                      &selftest_done);
> -
> -        tb->recv_data_callback(tb->tpm_state,
> -                               tb->tpm_state->locty_number,
> -                               selftest_done);
> -        break;
> -    case TPM_BACKEND_CMD_INIT:
> -    case TPM_BACKEND_CMD_END:
> -    case TPM_BACKEND_CMD_TPM_RESET:
> -        /* nothing to do */
> -        break;
> -    }
> +    DPRINTF("tpm_passthrough: processing command\n");
> +
> +    tpm_passthrough_unix_transfer(tpm_pt,
> +                                  tb->tpm_state->locty_data,
> +                                  &selftest_done);
> +
> +    tb->recv_data_callback(tb->tpm_state,
> +                           tb->tpm_state->locty_number,
> +                           selftest_done);
>   }
>   
>   static void tpm_passthrough_reset(TPMBackend *tb)