mbox series

[0/5] tpm: Match frontend and backend buffer sizes (not 2.11)

Message ID 1510016336-4086-1-git-send-email-stefanb@linux.vnet.ibm.com
Headers show
Series tpm: Match frontend and backend buffer sizes (not 2.11) | expand

Message

Stefan Berger Nov. 7, 2017, 12:58 a.m. UTC
This patch series does away with the hard coded buffer size in the TIS
frontend and instead retrieves the buffer size from the device that's
being used. So it gets it from the host device or the external emulator.
In case the frontend (CRB) cannot support the backend's current buffer size
(typically 4k) it can adjust the buffer size the emulator is working with
so that we will not run into the problem that the backend produces packets
that the frontend cannot deliver to due mismatching buffer sizes.

   Stefan

Stefan Berger (5):
  tpm: Move getting TPM buffer size to backends
  tpm: pull tpm_util_send() out of tpm_util_test()
  tpm: tpm_passthrough: Read the buffer size from the host device
  tpm: tpm_emulator: get and set buffer size of device
  tpm: tpm_passthrough: Fail startup if FE buffer size < BE buffer size

 backends/tpm.c               |  13 +++-
 hw/tpm/tpm_emulator.c        |  83 +++++++++++++++++++++++-
 hw/tpm/tpm_int.h             |   9 +++
 hw/tpm/tpm_ioctl.h           |  28 +++++++-
 hw/tpm/tpm_passthrough.c     |  30 +++++++++
 hw/tpm/tpm_tis.c             |  18 +++---
 hw/tpm/tpm_util.c            | 149 +++++++++++++++++++++++++++++++++++++++++--
 hw/tpm/tpm_util.h            |   3 +
 include/sysemu/tpm_backend.h |  17 ++++-
 9 files changed, 327 insertions(+), 23 deletions(-)

Comments

Marc-André Lureau Nov. 8, 2017, 4:20 p.m. UTC | #1
On Mon, Nov 06, 2017 at 07:58:51PM -0500, Stefan Berger wrote:
> This patch series does away with the hard coded buffer size in the TIS
> frontend and instead retrieves the buffer size from the device that's
> being used. So it gets it from the host device or the external emulator.
> In case the frontend (CRB) cannot support the backend's current buffer size
> (typically 4k) it can adjust the buffer size the emulator is working with
> so that we will not run into the problem that the backend produces packets
> that the frontend cannot deliver to due mismatching buffer sizes.
> 

The approach looks ok to me. I don't have enough TPM/backend knowledge
to say how relevant that is in the long run. Modifying the CRB device
to set the buffer size to qemu CRB_CTRL_CMD_SIZE works. Windows 10 seems
happy at least.

Just a few remarks, I suppose you'll send a v2 soon,

thanks

>    Stefan
> 
> Stefan Berger (5):
>   tpm: Move getting TPM buffer size to backends
>   tpm: pull tpm_util_send() out of tpm_util_test()
>   tpm: tpm_passthrough: Read the buffer size from the host device
>   tpm: tpm_emulator: get and set buffer size of device
>   tpm: tpm_passthrough: Fail startup if FE buffer size < BE buffer size
> 
>  backends/tpm.c               |  13 +++-
>  hw/tpm/tpm_emulator.c        |  83 +++++++++++++++++++++++-
>  hw/tpm/tpm_int.h             |   9 +++
>  hw/tpm/tpm_ioctl.h           |  28 +++++++-
>  hw/tpm/tpm_passthrough.c     |  30 +++++++++
>  hw/tpm/tpm_tis.c             |  18 +++---
>  hw/tpm/tpm_util.c            | 149 +++++++++++++++++++++++++++++++++++++++++--
>  hw/tpm/tpm_util.h            |   3 +
>  include/sysemu/tpm_backend.h |  17 ++++-
>  9 files changed, 327 insertions(+), 23 deletions(-)
> 
> -- 
> 2.5.5
> 
>