mbox series

[GIT,PULL] tpmdd updates for Linux v5.4

Message ID 20190902143121.pjnykevzlajlcrh6@linux.intel.com (mailing list archive)
State New, archived
Headers show
Series [GIT,PULL] tpmdd updates for Linux v5.4 | expand

Pull-request

git://git.infradead.org/users/jjs/linux-tpmdd.git tags/tpmdd-next-20190902

Message

Jarkko Sakkinen Sept. 2, 2019, 2:31 p.m. UTC
Hi

A new driver for fTPM living inside ARM TEE was added this round. In
addition to that, there is three bug fixes and one clean up.

/Jarkko

The following changes since commit 8fb8e9e46261e0117cb3cffb6dd8bb7e08f8649b:

  Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma (2019-08-30 09:23:45 -0700)

are available in the Git repository at:

  git://git.infradead.org/users/jjs/linux-tpmdd.git tags/tpmdd-next-20190902

for you to fetch changes up to e8bd417aab0c72bfb54465596b16085702ba0405:

  tpm/tpm_ftpm_tee: Document fTPM TEE driver (2019-09-02 17:08:35 +0300)

----------------------------------------------------------------
tpmdd updates for Linux v5.4

----------------------------------------------------------------
Jarkko Sakkinen (1):
      tpm: Remove a deprecated comments about implicit sysfs locking

Lukas Bulwahn (1):
      MAINTAINERS: fix style in KEYS-TRUSTED entry

Sasha Levin (2):
      tpm/tpm_ftpm_tee: A driver for firmware TPM running inside TEE
      tpm/tpm_ftpm_tee: Document fTPM TEE driver

Stefan Berger (2):
      tpm_tis_core: Turn on the TPM before probing IRQ's
      tpm_tis_core: Set TPM_CHIP_FLAG_IRQ before probing for interrupts

 .../devicetree/bindings/vendor-prefixes.yaml       |   2 +
 Documentation/security/tpm/index.rst               |   1 +
 Documentation/security/tpm/tpm_ftpm_tee.rst        |  27 ++
 MAINTAINERS                                        |   2 +-
 drivers/char/tpm/Kconfig                           |   5 +
 drivers/char/tpm/Makefile                          |   1 +
 drivers/char/tpm/tpm-chip.c                        |   7 +-
 drivers/char/tpm/tpm-sysfs.c                       |   7 -
 drivers/char/tpm/tpm_ftpm_tee.c                    | 350 +++++++++++++++++++++
 drivers/char/tpm/tpm_ftpm_tee.h                    |  40 +++
 drivers/char/tpm/tpm_tis_core.c                    |   3 +
 11 files changed, 432 insertions(+), 13 deletions(-)
 create mode 100644 Documentation/security/tpm/tpm_ftpm_tee.rst
 create mode 100644 drivers/char/tpm/tpm_ftpm_tee.c
 create mode 100644 drivers/char/tpm/tpm_ftpm_tee.h

Comments

pr-tracker-bot@kernel.org Sept. 16, 2019, 9:35 p.m. UTC | #1
The pull request you sent on Mon, 2 Sep 2019 17:31:21 +0300:

> git://git.infradead.org/users/jjs/linux-tpmdd.git tags/tpmdd-next-20190902

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/a7bd4bcf138e7ec95c00d55fee158f6be378029b

Thank you!
Dan Williams Nov. 21, 2019, 4:48 a.m. UTC | #2
On Mon, Sep 2, 2019 at 7:34 AM Jarkko Sakkinen
<jarkko.sakkinen@linux.intel.com> wrote:
>
> Hi
>
> A new driver for fTPM living inside ARM TEE was added this round. In
> addition to that, there is three bug fixes and one clean up.
>
> /Jarkko
>
> The following changes since commit 8fb8e9e46261e0117cb3cffb6dd8bb7e08f8649b:
>
>   Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma (2019-08-30 09:23:45 -0700)
>
> are available in the Git repository at:
>
>   git://git.infradead.org/users/jjs/linux-tpmdd.git tags/tpmdd-next-20190902
>
> for you to fetch changes up to e8bd417aab0c72bfb54465596b16085702ba0405:
>
>   tpm/tpm_ftpm_tee: Document fTPM TEE driver (2019-09-02 17:08:35 +0300)
>
> ----------------------------------------------------------------
> tpmdd updates for Linux v5.4
>
> ----------------------------------------------------------------
> Jarkko Sakkinen (1):
>       tpm: Remove a deprecated comments about implicit sysfs locking
>
> Lukas Bulwahn (1):
>       MAINTAINERS: fix style in KEYS-TRUSTED entry
>
> Sasha Levin (2):
>       tpm/tpm_ftpm_tee: A driver for firmware TPM running inside TEE
>       tpm/tpm_ftpm_tee: Document fTPM TEE driver
>
> Stefan Berger (2):
>       tpm_tis_core: Turn on the TPM before probing IRQ's
>       tpm_tis_core: Set TPM_CHIP_FLAG_IRQ before probing for interrupts

Hi Jarrko,

I'm replying here because I can't find the patches to reply to
directly from LKML.

Commit 7f064c378e2c "tpm_tis_core: Turn on the TPM before probing
IRQ's" in the v5.3-stable tree caused a regression on a pre-release
platform with a TPM2 device. The interrupt starts screaming when the
driver is loaded and does not stop until the device is force unbond
from the driver by:

     echo IFX0740:00 > /sys/bus/platform/drivers/tpm_tis/unbind

I checked v5.4-rc8 and it has the same problem. I tried reverting:

1ea32c83c699 tpm_tis_core: Set TPM_CHIP_FLAG_IRQ before probing for interrupts
5b359c7c4372 tpm_tis_core: Turn on the TPM before probing IRQ's

Which silenced the screaming interrupt problem, but now the TPM is reporting:

[    3.725131] tpm_tis IFX0740:00: 2.0 TPM (device-id 0x1B, rev-id 16)
[    3.725358] tpm tpm0: tpm_try_transmit: send(): error -5
[    3.725359] tpm tpm0: [Firmware Bug]: TPM interrupt not working,
polling instead

...at load, where it was not reporting this previously. Can you take a look?
Jerry Snitselaar Nov. 22, 2019, 4:18 p.m. UTC | #3
On Wed Nov 20 19, Dan Williams wrote:
>On Mon, Sep 2, 2019 at 7:34 AM Jarkko Sakkinen
><jarkko.sakkinen@linux.intel.com> wrote:
>>
>> Hi
>>
>> A new driver for fTPM living inside ARM TEE was added this round. In
>> addition to that, there is three bug fixes and one clean up.
>>
>> /Jarkko
>>
>> The following changes since commit 8fb8e9e46261e0117cb3cffb6dd8bb7e08f8649b:
>>
>>   Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma (2019-08-30 09:23:45 -0700)
>>
>> are available in the Git repository at:
>>
>>   git://git.infradead.org/users/jjs/linux-tpmdd.git tags/tpmdd-next-20190902
>>
>> for you to fetch changes up to e8bd417aab0c72bfb54465596b16085702ba0405:
>>
>>   tpm/tpm_ftpm_tee: Document fTPM TEE driver (2019-09-02 17:08:35 +0300)
>>
>> ----------------------------------------------------------------
>> tpmdd updates for Linux v5.4
>>
>> ----------------------------------------------------------------
>> Jarkko Sakkinen (1):
>>       tpm: Remove a deprecated comments about implicit sysfs locking
>>
>> Lukas Bulwahn (1):
>>       MAINTAINERS: fix style in KEYS-TRUSTED entry
>>
>> Sasha Levin (2):
>>       tpm/tpm_ftpm_tee: A driver for firmware TPM running inside TEE
>>       tpm/tpm_ftpm_tee: Document fTPM TEE driver
>>
>> Stefan Berger (2):
>>       tpm_tis_core: Turn on the TPM before probing IRQ's
>>       tpm_tis_core: Set TPM_CHIP_FLAG_IRQ before probing for interrupts
>
>Hi Jarrko,
>
>I'm replying here because I can't find the patches to reply to
>directly from LKML.
>
>Commit 7f064c378e2c "tpm_tis_core: Turn on the TPM before probing
>IRQ's" in the v5.3-stable tree caused a regression on a pre-release
>platform with a TPM2 device. The interrupt starts screaming when the
>driver is loaded and does not stop until the device is force unbond
>from the driver by:
>
>     echo IFX0740:00 > /sys/bus/platform/drivers/tpm_tis/unbind
>
>I checked v5.4-rc8 and it has the same problem. I tried reverting:
>
>1ea32c83c699 tpm_tis_core: Set TPM_CHIP_FLAG_IRQ before probing for interrupts
>5b359c7c4372 tpm_tis_core: Turn on the TPM before probing IRQ's
>
>Which silenced the screaming interrupt problem, but now the TPM is reporting:
>
>[    3.725131] tpm_tis IFX0740:00: 2.0 TPM (device-id 0x1B, rev-id 16)
>[    3.725358] tpm tpm0: tpm_try_transmit: send(): error -5
>[    3.725359] tpm tpm0: [Firmware Bug]: TPM interrupt not working,
>polling instead
>
>...at load, where it was not reporting this previously. Can you take a look?
>

We've had an issue reported for a Lenovo t490s getting an interrupt storm
with the Fedora 5.3 stable kernel, so it appears to be impacting a number of
systems.
Jarkko Sakkinen Nov. 27, 2019, 8:58 p.m. UTC | #4
On Wed, Nov 20, 2019 at 08:48:25PM -0800, Dan Williams wrote:
> On Mon, Sep 2, 2019 at 7:34 AM Jarkko Sakkinen
> <jarkko.sakkinen@linux.intel.com> wrote:
> >
> > Hi
> >
> > A new driver for fTPM living inside ARM TEE was added this round. In
> > addition to that, there is three bug fixes and one clean up.
> >
> > /Jarkko
> >
> > The following changes since commit 8fb8e9e46261e0117cb3cffb6dd8bb7e08f8649b:
> >
> >   Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma (2019-08-30 09:23:45 -0700)
> >
> > are available in the Git repository at:
> >
> >   git://git.infradead.org/users/jjs/linux-tpmdd.git tags/tpmdd-next-20190902
> >
> > for you to fetch changes up to e8bd417aab0c72bfb54465596b16085702ba0405:
> >
> >   tpm/tpm_ftpm_tee: Document fTPM TEE driver (2019-09-02 17:08:35 +0300)
> >
> > ----------------------------------------------------------------
> > tpmdd updates for Linux v5.4
> >
> > ----------------------------------------------------------------
> > Jarkko Sakkinen (1):
> >       tpm: Remove a deprecated comments about implicit sysfs locking
> >
> > Lukas Bulwahn (1):
> >       MAINTAINERS: fix style in KEYS-TRUSTED entry
> >
> > Sasha Levin (2):
> >       tpm/tpm_ftpm_tee: A driver for firmware TPM running inside TEE
> >       tpm/tpm_ftpm_tee: Document fTPM TEE driver
> >
> > Stefan Berger (2):
> >       tpm_tis_core: Turn on the TPM before probing IRQ's
> >       tpm_tis_core: Set TPM_CHIP_FLAG_IRQ before probing for interrupts
> 
> Hi Jarrko,
> 
> I'm replying here because I can't find the patches to reply to
> directly from LKML.
> 
> Commit 7f064c378e2c "tpm_tis_core: Turn on the TPM before probing
> IRQ's" in the v5.3-stable tree caused a regression on a pre-release
> platform with a TPM2 device. The interrupt starts screaming when the
> driver is loaded and does not stop until the device is force unbond
> from the driver by:
> 
>      echo IFX0740:00 > /sys/bus/platform/drivers/tpm_tis/unbind
> 
> I checked v5.4-rc8 and it has the same problem. I tried reverting:
> 
> 1ea32c83c699 tpm_tis_core: Set TPM_CHIP_FLAG_IRQ before probing for interrupts
> 5b359c7c4372 tpm_tis_core: Turn on the TPM before probing IRQ's
> 
> Which silenced the screaming interrupt problem, but now the TPM is reporting:
> 
> [    3.725131] tpm_tis IFX0740:00: 2.0 TPM (device-id 0x1B, rev-id 16)
> [    3.725358] tpm tpm0: tpm_try_transmit: send(): error -5
> [    3.725359] tpm tpm0: [Firmware Bug]: TPM interrupt not working,
> polling instead
> 
> ...at load, where it was not reporting this previously. Can you take a look?

It is already in WiP:

https://patchwork.kernel.org/patch/11240111/

Stefan also sent patches that revert to changes that you described:

https://patchwork.kernel.org/cover/11262363/

Probably better first to fix the issue on top of master before deciding
actions.

/Jarkko
Jarkko Sakkinen Nov. 27, 2019, 8:59 p.m. UTC | #5
On Wed, Nov 27, 2019 at 10:58:00PM +0200, Jarkko Sakkinen wrote:
> On Wed, Nov 20, 2019 at 08:48:25PM -0800, Dan Williams wrote:
> > On Mon, Sep 2, 2019 at 7:34 AM Jarkko Sakkinen
> > <jarkko.sakkinen@linux.intel.com> wrote:
> > >
> > > Hi
> > >
> > > A new driver for fTPM living inside ARM TEE was added this round. In
> > > addition to that, there is three bug fixes and one clean up.
> > >
> > > /Jarkko
> > >
> > > The following changes since commit 8fb8e9e46261e0117cb3cffb6dd8bb7e08f8649b:
> > >
> > >   Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma (2019-08-30 09:23:45 -0700)
> > >
> > > are available in the Git repository at:
> > >
> > >   git://git.infradead.org/users/jjs/linux-tpmdd.git tags/tpmdd-next-20190902
> > >
> > > for you to fetch changes up to e8bd417aab0c72bfb54465596b16085702ba0405:
> > >
> > >   tpm/tpm_ftpm_tee: Document fTPM TEE driver (2019-09-02 17:08:35 +0300)
> > >
> > > ----------------------------------------------------------------
> > > tpmdd updates for Linux v5.4
> > >
> > > ----------------------------------------------------------------
> > > Jarkko Sakkinen (1):
> > >       tpm: Remove a deprecated comments about implicit sysfs locking
> > >
> > > Lukas Bulwahn (1):
> > >       MAINTAINERS: fix style in KEYS-TRUSTED entry
> > >
> > > Sasha Levin (2):
> > >       tpm/tpm_ftpm_tee: A driver for firmware TPM running inside TEE
> > >       tpm/tpm_ftpm_tee: Document fTPM TEE driver
> > >
> > > Stefan Berger (2):
> > >       tpm_tis_core: Turn on the TPM before probing IRQ's
> > >       tpm_tis_core: Set TPM_CHIP_FLAG_IRQ before probing for interrupts
> > 
> > Hi Jarrko,
> > 
> > I'm replying here because I can't find the patches to reply to
> > directly from LKML.
> > 
> > Commit 7f064c378e2c "tpm_tis_core: Turn on the TPM before probing
> > IRQ's" in the v5.3-stable tree caused a regression on a pre-release
> > platform with a TPM2 device. The interrupt starts screaming when the
> > driver is loaded and does not stop until the device is force unbond
> > from the driver by:
> > 
> >      echo IFX0740:00 > /sys/bus/platform/drivers/tpm_tis/unbind
> > 
> > I checked v5.4-rc8 and it has the same problem. I tried reverting:
> > 
> > 1ea32c83c699 tpm_tis_core: Set TPM_CHIP_FLAG_IRQ before probing for interrupts
> > 5b359c7c4372 tpm_tis_core: Turn on the TPM before probing IRQ's
> > 
> > Which silenced the screaming interrupt problem, but now the TPM is reporting:
> > 
> > [    3.725131] tpm_tis IFX0740:00: 2.0 TPM (device-id 0x1B, rev-id 16)
> > [    3.725358] tpm tpm0: tpm_try_transmit: send(): error -5
> > [    3.725359] tpm tpm0: [Firmware Bug]: TPM interrupt not working,
> > polling instead
> > 
> > ...at load, where it was not reporting this previously. Can you take a look?
> 
> It is already in WiP:
> 
> https://patchwork.kernel.org/patch/11240111/
> 
> Stefan also sent patches that revert to changes that you described:
> 
> https://patchwork.kernel.org/cover/11262363/
> 
> Probably better first to fix the issue on top of master before deciding
> actions.

... and apologies for late response.

/Jarkko
Dan Williams Nov. 27, 2019, 9:10 p.m. UTC | #6
On Wed, Nov 27, 2019 at 12:58 PM Jarkko Sakkinen
<jarkko.sakkinen@linux.intel.com> wrote:
>
> On Wed, Nov 20, 2019 at 08:48:25PM -0800, Dan Williams wrote:
> > On Mon, Sep 2, 2019 at 7:34 AM Jarkko Sakkinen
> > <jarkko.sakkinen@linux.intel.com> wrote:
> > >
> > > Hi
> > >
> > > A new driver for fTPM living inside ARM TEE was added this round. In
> > > addition to that, there is three bug fixes and one clean up.
> > >
> > > /Jarkko
> > >
> > > The following changes since commit 8fb8e9e46261e0117cb3cffb6dd8bb7e08f8649b:
> > >
> > >   Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma (2019-08-30 09:23:45 -0700)
> > >
> > > are available in the Git repository at:
> > >
> > >   git://git.infradead.org/users/jjs/linux-tpmdd.git tags/tpmdd-next-20190902
> > >
> > > for you to fetch changes up to e8bd417aab0c72bfb54465596b16085702ba0405:
> > >
> > >   tpm/tpm_ftpm_tee: Document fTPM TEE driver (2019-09-02 17:08:35 +0300)
> > >
> > > ----------------------------------------------------------------
> > > tpmdd updates for Linux v5.4
> > >
> > > ----------------------------------------------------------------
> > > Jarkko Sakkinen (1):
> > >       tpm: Remove a deprecated comments about implicit sysfs locking
> > >
> > > Lukas Bulwahn (1):
> > >       MAINTAINERS: fix style in KEYS-TRUSTED entry
> > >
> > > Sasha Levin (2):
> > >       tpm/tpm_ftpm_tee: A driver for firmware TPM running inside TEE
> > >       tpm/tpm_ftpm_tee: Document fTPM TEE driver
> > >
> > > Stefan Berger (2):
> > >       tpm_tis_core: Turn on the TPM before probing IRQ's
> > >       tpm_tis_core: Set TPM_CHIP_FLAG_IRQ before probing for interrupts
> >
> > Hi Jarrko,
> >
> > I'm replying here because I can't find the patches to reply to
> > directly from LKML.
> >
> > Commit 7f064c378e2c "tpm_tis_core: Turn on the TPM before probing
> > IRQ's" in the v5.3-stable tree caused a regression on a pre-release
> > platform with a TPM2 device. The interrupt starts screaming when the
> > driver is loaded and does not stop until the device is force unbond
> > from the driver by:
> >
> >      echo IFX0740:00 > /sys/bus/platform/drivers/tpm_tis/unbind
> >
> > I checked v5.4-rc8 and it has the same problem. I tried reverting:
> >
> > 1ea32c83c699 tpm_tis_core: Set TPM_CHIP_FLAG_IRQ before probing for interrupts
> > 5b359c7c4372 tpm_tis_core: Turn on the TPM before probing IRQ's
> >
> > Which silenced the screaming interrupt problem, but now the TPM is reporting:
> >
> > [    3.725131] tpm_tis IFX0740:00: 2.0 TPM (device-id 0x1B, rev-id 16)
> > [    3.725358] tpm tpm0: tpm_try_transmit: send(): error -5
> > [    3.725359] tpm tpm0: [Firmware Bug]: TPM interrupt not working,
> > polling instead
> >
> > ...at load, where it was not reporting this previously. Can you take a look?
>
> It is already in WiP:
>
> https://patchwork.kernel.org/patch/11240111/

That fix did not work for me.

>
> Stefan also sent patches that revert to changes that you described:
>
> https://patchwork.kernel.org/cover/11262363/
>
> Probably better first to fix the issue on top of master before deciding
> actions.

Revert and try again sounds good to me.
Jerry Snitselaar Nov. 28, 2019, 1:20 a.m. UTC | #7
On Wed Nov 27 19, Jarkko Sakkinen wrote:
>On Wed, Nov 27, 2019 at 10:58:00PM +0200, Jarkko Sakkinen wrote:
>> On Wed, Nov 20, 2019 at 08:48:25PM -0800, Dan Williams wrote:
>> > On Mon, Sep 2, 2019 at 7:34 AM Jarkko Sakkinen
>> > <jarkko.sakkinen@linux.intel.com> wrote:
>> > >
>> > > Hi
>> > >
>> > > A new driver for fTPM living inside ARM TEE was added this round. In
>> > > addition to that, there is three bug fixes and one clean up.
>> > >
>> > > /Jarkko
>> > >
>> > > The following changes since commit 8fb8e9e46261e0117cb3cffb6dd8bb7e08f8649b:
>> > >
>> > >   Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma (2019-08-30 09:23:45 -0700)
>> > >
>> > > are available in the Git repository at:
>> > >
>> > >   git://git.infradead.org/users/jjs/linux-tpmdd.git tags/tpmdd-next-20190902
>> > >
>> > > for you to fetch changes up to e8bd417aab0c72bfb54465596b16085702ba0405:
>> > >
>> > >   tpm/tpm_ftpm_tee: Document fTPM TEE driver (2019-09-02 17:08:35 +0300)
>> > >
>> > > ----------------------------------------------------------------
>> > > tpmdd updates for Linux v5.4
>> > >
>> > > ----------------------------------------------------------------
>> > > Jarkko Sakkinen (1):
>> > >       tpm: Remove a deprecated comments about implicit sysfs locking
>> > >
>> > > Lukas Bulwahn (1):
>> > >       MAINTAINERS: fix style in KEYS-TRUSTED entry
>> > >
>> > > Sasha Levin (2):
>> > >       tpm/tpm_ftpm_tee: A driver for firmware TPM running inside TEE
>> > >       tpm/tpm_ftpm_tee: Document fTPM TEE driver
>> > >
>> > > Stefan Berger (2):
>> > >       tpm_tis_core: Turn on the TPM before probing IRQ's
>> > >       tpm_tis_core: Set TPM_CHIP_FLAG_IRQ before probing for interrupts
>> >
>> > Hi Jarrko,
>> >
>> > I'm replying here because I can't find the patches to reply to
>> > directly from LKML.
>> >
>> > Commit 7f064c378e2c "tpm_tis_core: Turn on the TPM before probing
>> > IRQ's" in the v5.3-stable tree caused a regression on a pre-release
>> > platform with a TPM2 device. The interrupt starts screaming when the
>> > driver is loaded and does not stop until the device is force unbond
>> > from the driver by:
>> >
>> >      echo IFX0740:00 > /sys/bus/platform/drivers/tpm_tis/unbind
>> >
>> > I checked v5.4-rc8 and it has the same problem. I tried reverting:
>> >
>> > 1ea32c83c699 tpm_tis_core: Set TPM_CHIP_FLAG_IRQ before probing for interrupts
>> > 5b359c7c4372 tpm_tis_core: Turn on the TPM before probing IRQ's
>> >
>> > Which silenced the screaming interrupt problem, but now the TPM is reporting:
>> >
>> > [    3.725131] tpm_tis IFX0740:00: 2.0 TPM (device-id 0x1B, rev-id 16)
>> > [    3.725358] tpm tpm0: tpm_try_transmit: send(): error -5
>> > [    3.725359] tpm tpm0: [Firmware Bug]: TPM interrupt not working,
>> > polling instead
>> >
>> > ...at load, where it was not reporting this previously. Can you take a look?
>>
>> It is already in WiP:
>>
>> https://patchwork.kernel.org/patch/11240111/
>>
>> Stefan also sent patches that revert to changes that you described:
>>
>> https://patchwork.kernel.org/cover/11262363/
>>
>> Probably better first to fix the issue on top of master before deciding
>> actions.
>
>... and apologies for late response.
>
>/Jarkko
>

There also was that other issue reported on the list about
tpm_tis_core_init failing when calling tpm_get_timeouts due to the
power gating changes.
Jarkko Sakkinen Nov. 29, 2019, 9:04 p.m. UTC | #8
On Fri, Nov 22, 2019 at 09:18:36AM -0700, Jerry Snitselaar wrote:
> On Wed Nov 20 19, Dan Williams wrote:
> > On Mon, Sep 2, 2019 at 7:34 AM Jarkko Sakkinen
> > <jarkko.sakkinen@linux.intel.com> wrote:
> > > 
> > > Hi
> > > 
> > > A new driver for fTPM living inside ARM TEE was added this round. In
> > > addition to that, there is three bug fixes and one clean up.
> > > 
> > > /Jarkko
> > > 
> > > The following changes since commit 8fb8e9e46261e0117cb3cffb6dd8bb7e08f8649b:
> > > 
> > >   Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma (2019-08-30 09:23:45 -0700)
> > > 
> > > are available in the Git repository at:
> > > 
> > >   git://git.infradead.org/users/jjs/linux-tpmdd.git tags/tpmdd-next-20190902
> > > 
> > > for you to fetch changes up to e8bd417aab0c72bfb54465596b16085702ba0405:
> > > 
> > >   tpm/tpm_ftpm_tee: Document fTPM TEE driver (2019-09-02 17:08:35 +0300)
> > > 
> > > ----------------------------------------------------------------
> > > tpmdd updates for Linux v5.4
> > > 
> > > ----------------------------------------------------------------
> > > Jarkko Sakkinen (1):
> > >       tpm: Remove a deprecated comments about implicit sysfs locking
> > > 
> > > Lukas Bulwahn (1):
> > >       MAINTAINERS: fix style in KEYS-TRUSTED entry
> > > 
> > > Sasha Levin (2):
> > >       tpm/tpm_ftpm_tee: A driver for firmware TPM running inside TEE
> > >       tpm/tpm_ftpm_tee: Document fTPM TEE driver
> > > 
> > > Stefan Berger (2):
> > >       tpm_tis_core: Turn on the TPM before probing IRQ's
> > >       tpm_tis_core: Set TPM_CHIP_FLAG_IRQ before probing for interrupts
> > 
> > Hi Jarrko,
> > 
> > I'm replying here because I can't find the patches to reply to
> > directly from LKML.
> > 
> > Commit 7f064c378e2c "tpm_tis_core: Turn on the TPM before probing
> > IRQ's" in the v5.3-stable tree caused a regression on a pre-release
> > platform with a TPM2 device. The interrupt starts screaming when the
> > driver is loaded and does not stop until the device is force unbond
> > from the driver by:
> > 
> >     echo IFX0740:00 > /sys/bus/platform/drivers/tpm_tis/unbind
> > 
> > I checked v5.4-rc8 and it has the same problem. I tried reverting:
> > 
> > 1ea32c83c699 tpm_tis_core: Set TPM_CHIP_FLAG_IRQ before probing for interrupts
> > 5b359c7c4372 tpm_tis_core: Turn on the TPM before probing IRQ's
> > 
> > Which silenced the screaming interrupt problem, but now the TPM is reporting:
> > 
> > [    3.725131] tpm_tis IFX0740:00: 2.0 TPM (device-id 0x1B, rev-id 16)
> > [    3.725358] tpm tpm0: tpm_try_transmit: send(): error -5
> > [    3.725359] tpm tpm0: [Firmware Bug]: TPM interrupt not working,
> > polling instead
> > 
> > ...at load, where it was not reporting this previously. Can you take a look?
> > 
> 
> We've had an issue reported for a Lenovo t490s getting an interrupt storm
> with the Fedora 5.3 stable kernel, so it appears to be impacting a number of
> systems.

Hi sorry for inactivity. I've had a renovation going on where I live
which has caused some crackling in the comms but I'm catching up during
the weekend.

Which CPU model does T490S have? Can you paste /proc/cpuinfo?

/Jarkko
Jerry Snitselaar Nov. 29, 2019, 11:22 p.m. UTC | #9
On Fri Nov 29 19, Jarkko Sakkinen wrote:
>On Fri, Nov 22, 2019 at 09:18:36AM -0700, Jerry Snitselaar wrote:
>> On Wed Nov 20 19, Dan Williams wrote:
>> > On Mon, Sep 2, 2019 at 7:34 AM Jarkko Sakkinen
>> > <jarkko.sakkinen@linux.intel.com> wrote:
>> > >
>> > > Hi
>> > >
>> > > A new driver for fTPM living inside ARM TEE was added this round. In
>> > > addition to that, there is three bug fixes and one clean up.
>> > >
>> > > /Jarkko
>> > >
>> > > The following changes since commit 8fb8e9e46261e0117cb3cffb6dd8bb7e08f8649b:
>> > >
>> > >   Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma (2019-08-30 09:23:45 -0700)
>> > >
>> > > are available in the Git repository at:
>> > >
>> > >   git://git.infradead.org/users/jjs/linux-tpmdd.git tags/tpmdd-next-20190902
>> > >
>> > > for you to fetch changes up to e8bd417aab0c72bfb54465596b16085702ba0405:
>> > >
>> > >   tpm/tpm_ftpm_tee: Document fTPM TEE driver (2019-09-02 17:08:35 +0300)
>> > >
>> > > ----------------------------------------------------------------
>> > > tpmdd updates for Linux v5.4
>> > >
>> > > ----------------------------------------------------------------
>> > > Jarkko Sakkinen (1):
>> > >       tpm: Remove a deprecated comments about implicit sysfs locking
>> > >
>> > > Lukas Bulwahn (1):
>> > >       MAINTAINERS: fix style in KEYS-TRUSTED entry
>> > >
>> > > Sasha Levin (2):
>> > >       tpm/tpm_ftpm_tee: A driver for firmware TPM running inside TEE
>> > >       tpm/tpm_ftpm_tee: Document fTPM TEE driver
>> > >
>> > > Stefan Berger (2):
>> > >       tpm_tis_core: Turn on the TPM before probing IRQ's
>> > >       tpm_tis_core: Set TPM_CHIP_FLAG_IRQ before probing for interrupts
>> >
>> > Hi Jarrko,
>> >
>> > I'm replying here because I can't find the patches to reply to
>> > directly from LKML.
>> >
>> > Commit 7f064c378e2c "tpm_tis_core: Turn on the TPM before probing
>> > IRQ's" in the v5.3-stable tree caused a regression on a pre-release
>> > platform with a TPM2 device. The interrupt starts screaming when the
>> > driver is loaded and does not stop until the device is force unbond
>> > from the driver by:
>> >
>> >     echo IFX0740:00 > /sys/bus/platform/drivers/tpm_tis/unbind
>> >
>> > I checked v5.4-rc8 and it has the same problem. I tried reverting:
>> >
>> > 1ea32c83c699 tpm_tis_core: Set TPM_CHIP_FLAG_IRQ before probing for interrupts
>> > 5b359c7c4372 tpm_tis_core: Turn on the TPM before probing IRQ's
>> >
>> > Which silenced the screaming interrupt problem, but now the TPM is reporting:
>> >
>> > [    3.725131] tpm_tis IFX0740:00: 2.0 TPM (device-id 0x1B, rev-id 16)
>> > [    3.725358] tpm tpm0: tpm_try_transmit: send(): error -5
>> > [    3.725359] tpm tpm0: [Firmware Bug]: TPM interrupt not working,
>> > polling instead
>> >
>> > ...at load, where it was not reporting this previously. Can you take a look?
>> >
>>
>> We've had an issue reported for a Lenovo t490s getting an interrupt storm
>> with the Fedora 5.3 stable kernel, so it appears to be impacting a number of
>> systems.
>
>Hi sorry for inactivity. I've had a renovation going on where I live
>which has caused some crackling in the comms but I'm catching up during
>the weekend.
>
>Which CPU model does T490S have? Can you paste /proc/cpuinfo?
>
>/Jarkko
>

I still don't have access to one of the laptops, but looking online
they should have one of the following: i5-8265U, i5-8365U, i7-8565U,
or i7-8665U. The tpm is discrete, so I don't know that the cpu will
matter. Looking at a log, in the t490s case it is an STMicroelectronics
chip. So both Infineon and STM so far.
Jarkko Sakkinen Nov. 29, 2019, 11:25 p.m. UTC | #10
On Wed, Nov 27, 2019 at 01:10:00PM -0800, Dan Williams wrote:
> Revert and try again sounds good to me.

I'll try to reproduce this in some local system next week.

/Jarkko
Jerry Snitselaar Nov. 29, 2019, 11:32 p.m. UTC | #11
On Fri Nov 29 19, Jerry Snitselaar wrote:
>On Fri Nov 29 19, Jarkko Sakkinen wrote:
>>On Fri, Nov 22, 2019 at 09:18:36AM -0700, Jerry Snitselaar wrote:
>>>On Wed Nov 20 19, Dan Williams wrote:
>>>> On Mon, Sep 2, 2019 at 7:34 AM Jarkko Sakkinen
>>>> <jarkko.sakkinen@linux.intel.com> wrote:
>>>> >
>>>> > Hi
>>>> >
>>>> > A new driver for fTPM living inside ARM TEE was added this round. In
>>>> > addition to that, there is three bug fixes and one clean up.
>>>> >
>>>> > /Jarkko
>>>> >
>>>> > The following changes since commit 8fb8e9e46261e0117cb3cffb6dd8bb7e08f8649b:
>>>> >
>>>> >   Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma (2019-08-30 09:23:45 -0700)
>>>> >
>>>> > are available in the Git repository at:
>>>> >
>>>> >   git://git.infradead.org/users/jjs/linux-tpmdd.git tags/tpmdd-next-20190902
>>>> >
>>>> > for you to fetch changes up to e8bd417aab0c72bfb54465596b16085702ba0405:
>>>> >
>>>> >   tpm/tpm_ftpm_tee: Document fTPM TEE driver (2019-09-02 17:08:35 +0300)
>>>> >
>>>> > ----------------------------------------------------------------
>>>> > tpmdd updates for Linux v5.4
>>>> >
>>>> > ----------------------------------------------------------------
>>>> > Jarkko Sakkinen (1):
>>>> >       tpm: Remove a deprecated comments about implicit sysfs locking
>>>> >
>>>> > Lukas Bulwahn (1):
>>>> >       MAINTAINERS: fix style in KEYS-TRUSTED entry
>>>> >
>>>> > Sasha Levin (2):
>>>> >       tpm/tpm_ftpm_tee: A driver for firmware TPM running inside TEE
>>>> >       tpm/tpm_ftpm_tee: Document fTPM TEE driver
>>>> >
>>>> > Stefan Berger (2):
>>>> >       tpm_tis_core: Turn on the TPM before probing IRQ's
>>>> >       tpm_tis_core: Set TPM_CHIP_FLAG_IRQ before probing for interrupts
>>>>
>>>> Hi Jarrko,
>>>>
>>>> I'm replying here because I can't find the patches to reply to
>>>> directly from LKML.
>>>>
>>>> Commit 7f064c378e2c "tpm_tis_core: Turn on the TPM before probing
>>>> IRQ's" in the v5.3-stable tree caused a regression on a pre-release
>>>> platform with a TPM2 device. The interrupt starts screaming when the
>>>> driver is loaded and does not stop until the device is force unbond
>>>> from the driver by:
>>>>
>>>>     echo IFX0740:00 > /sys/bus/platform/drivers/tpm_tis/unbind
>>>>
>>>> I checked v5.4-rc8 and it has the same problem. I tried reverting:
>>>>
>>>> 1ea32c83c699 tpm_tis_core: Set TPM_CHIP_FLAG_IRQ before probing for interrupts
>>>> 5b359c7c4372 tpm_tis_core: Turn on the TPM before probing IRQ's
>>>>
>>>> Which silenced the screaming interrupt problem, but now the TPM is reporting:
>>>>
>>>> [    3.725131] tpm_tis IFX0740:00: 2.0 TPM (device-id 0x1B, rev-id 16)
>>>> [    3.725358] tpm tpm0: tpm_try_transmit: send(): error -5
>>>> [    3.725359] tpm tpm0: [Firmware Bug]: TPM interrupt not working,
>>>> polling instead
>>>>
>>>> ...at load, where it was not reporting this previously. Can you take a look?
>>>>
>>>
>>>We've had an issue reported for a Lenovo t490s getting an interrupt storm
>>>with the Fedora 5.3 stable kernel, so it appears to be impacting a number of
>>>systems.
>>
>>Hi sorry for inactivity. I've had a renovation going on where I live
>>which has caused some crackling in the comms but I'm catching up during
>>the weekend.
>>
>>Which CPU model does T490S have? Can you paste /proc/cpuinfo?
>>
>>/Jarkko
>>
>
>I still don't have access to one of the laptops, but looking online
>they should have one of the following: i5-8265U, i5-8365U, i7-8565U,
>or i7-8665U. The tpm is discrete, so I don't know that the cpu will
>matter. Looking at a log, in the t490s case it is an STMicroelectronics
>chip. So both Infineon and STM so far.
>

In the case reported on Fedora the cpu is a i7-8665U.
Jarkko Sakkinen Nov. 29, 2019, 11:53 p.m. UTC | #12
On Wed, Nov 27, 2019 at 06:20:55PM -0700, Jerry Snitselaar wrote:
> There also was that other issue reported on the list about
> tpm_tis_core_init failing when calling tpm_get_timeouts due to the
> power gating changes.

Please add a (lore.ko) link for reference to this thread.

/Jarkko
Jerry Snitselaar Nov. 30, 2019, 12:12 a.m. UTC | #13
On Sat Nov 30 19, Jarkko Sakkinen wrote:
>On Wed, Nov 27, 2019 at 06:20:55PM -0700, Jerry Snitselaar wrote:
>> There also was that other issue reported on the list about
>> tpm_tis_core_init failing when calling tpm_get_timeouts due to the
>> power gating changes.
>
>Please add a (lore.ko) link for reference to this thread.
>
>/Jarkko
>

https://lore.kernel.org/linux-integrity/a60dadce-3650-44ce-8785-2f737ab9b993@www.fastmail.com/
Jarkko Sakkinen Dec. 6, 2019, 8:50 p.m. UTC | #14
On Fri, Nov 29, 2019 at 04:22:49PM -0700, Jerry Snitselaar wrote:
> I still don't have access to one of the laptops, but looking online
> they should have one of the following: i5-8265U, i5-8365U, i7-8565U,
> or i7-8665U. The tpm is discrete, so I don't know that the cpu will
> matter. Looking at a log, in the t490s case it is an STMicroelectronics
> chip. So both Infineon and STM so far.

Still also seeking a local system.

/Jarkko
Jarkko Sakkinen Dec. 6, 2019, 8:51 p.m. UTC | #15
On Fri, Nov 29, 2019 at 04:32:47PM -0700, Jerry Snitselaar wrote:
> > I still don't have access to one of the laptops, but looking online
> > they should have one of the following: i5-8265U, i5-8365U, i7-8565U,
> > or i7-8665U. The tpm is discrete, so I don't know that the cpu will
> > matter. Looking at a log, in the t490s case it is an STMicroelectronics
> > chip. So both Infineon and STM so far.
> > 
> 
> In the case reported on Fedora the cpu is a i7-8665U.

I don't think CPU will matter that much if it is a dTPM.

/Jarkko
Jarkko Sakkinen Dec. 6, 2019, 9:18 p.m. UTC | #16
On Fri, Nov 29, 2019 at 05:12:53PM -0700, Jerry Snitselaar wrote:
> On Sat Nov 30 19, Jarkko Sakkinen wrote:
> > On Wed, Nov 27, 2019 at 06:20:55PM -0700, Jerry Snitselaar wrote:
> > > There also was that other issue reported on the list about
> > > tpm_tis_core_init failing when calling tpm_get_timeouts due to the
> > > power gating changes.
> > 
> > Please add a (lore.ko) link for reference to this thread.
> > 
> > /Jarkko
> > 
> 
> https://lore.kernel.org/linux-integrity/a60dadce-3650-44ce-8785-2f737ab9b993@www.fastmail.com/

tpm_chip_stop() probably causes the issue. That is why tpm2_probe()
works and failure happens after that.

tpm_chip_stop() should be called once at the end of the function.

/Jarkko
Jerry Snitselaar Dec. 6, 2019, 11:02 p.m. UTC | #17
On Fri Dec 06 19, Jarkko Sakkinen wrote:
>On Fri, Nov 29, 2019 at 05:12:53PM -0700, Jerry Snitselaar wrote:
>> On Sat Nov 30 19, Jarkko Sakkinen wrote:
>> > On Wed, Nov 27, 2019 at 06:20:55PM -0700, Jerry Snitselaar wrote:
>> > > There also was that other issue reported on the list about
>> > > tpm_tis_core_init failing when calling tpm_get_timeouts due to the
>> > > power gating changes.
>> >
>> > Please add a (lore.ko) link for reference to this thread.
>> >
>> > /Jarkko
>> >
>>
>> https://lore.kernel.org/linux-integrity/a60dadce-3650-44ce-8785-2f737ab9b993@www.fastmail.com/
>
>tpm_chip_stop() probably causes the issue. That is why tpm2_probe()
>works and failure happens after that.
>
>tpm_chip_stop() should be called once at the end of the function.
>

The patch I posted that fixed the issue for him moved the
tpm_chip_start() from the irq probing section right below there to
before the tpm_get_timeouts call, but your idea is better.

Any thoughts on the irq issue? I need to go back and look at the older
commits again, but before Stefan's patch enabling the irq flag I'm not
sure the last time that testing code section in tpm_tis_send was
actually used. I think prior to that it always just went straight to
tpm_tis_send_main.

570a36097f30 ("tpm: drop 'irq' from struct tpm_vendor_specific") adds
the flag, and I can see where it disables and enables the flag in the
testing code in tpm_tis_send, but I don't see where it enables the
flag originally for it to ever get into the testing section of
tpm_tis_send. That means since this commit tpm_tis hasn't been using
interrupts, right?

Regards,
Jerry

>/Jarkko
>
Jarkko Sakkinen Dec. 9, 2019, 8:17 p.m. UTC | #18
On Fri, Dec 06, 2019 at 04:02:55PM -0700, Jerry Snitselaar wrote:
> On Fri Dec 06 19, Jarkko Sakkinen wrote:
> > On Fri, Nov 29, 2019 at 05:12:53PM -0700, Jerry Snitselaar wrote:
> > > On Sat Nov 30 19, Jarkko Sakkinen wrote:
> > > > On Wed, Nov 27, 2019 at 06:20:55PM -0700, Jerry Snitselaar wrote:
> > > > > There also was that other issue reported on the list about
> > > > > tpm_tis_core_init failing when calling tpm_get_timeouts due to the
> > > > > power gating changes.
> > > >
> > > > Please add a (lore.ko) link for reference to this thread.
> > > >
> > > > /Jarkko
> > > >
> > > 
> > > https://lore.kernel.org/linux-integrity/a60dadce-3650-44ce-8785-2f737ab9b993@www.fastmail.com/
> > 
> > tpm_chip_stop() probably causes the issue. That is why tpm2_probe()
> > works and failure happens after that.
> > 
> > tpm_chip_stop() should be called once at the end of the function.
> > 
> 
> The patch I posted that fixed the issue for him moved the
> tpm_chip_start() from the irq probing section right below there to
> before the tpm_get_timeouts call, but your idea is better.

Yes, the chip can be reserved for the whole course of the function
because it is single user at that point.

> Any thoughts on the irq issue? I need to go back and look at the older
> commits again, but before Stefan's patch enabling the irq flag I'm not
> sure the last time that testing code section in tpm_tis_send was
> actually used. I think prior to that it always just went straight to
> tpm_tis_send_main.

I'd prefer to look it up with the fix for start/stop because it is
a regression on its own and mixed effect is not great way to analyze
anything.

So what we need is a T490S owner to provide klog with the fix applied.

/Jarkko