* [PATCH v2] tpm_tis: turn on TPM before calling tpm_get_timeouts
[not found] <20191111233418.17676-1-jsnitsel@redhat.com>
@ 2019-11-12 0:03 ` Jerry Snitselaar
[not found] ` <20191112200328.GA11213@linux.intel.com>
2019-11-13 0:02 ` [PATCH v3] " Jerry Snitselaar
2 siblings, 0 replies; 4+ messages in thread
From: Jerry Snitselaar @ 2019-11-12 0:03 UTC (permalink / raw)
To: linux-integrity
Cc: Jarkko Sakkinen, Peter Huewe, Jason Gunthorpe, linux-kernel,
stable, Christian Bundy
With power gating moved out of the tpm_transmit code we need
to power on the TPM prior to calling tpm_get_timeouts.
Cc: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Cc: Peter Huewe <peterhuewe@gmx.de>
Cc: Jason Gunthorpe <jgg@ziepe.ca>
Cc: linux-kernel@vger.kernel.org
Cc: stable@vger.kernel.org
Fixes: a3fbfae82b4c ("tpm: take TPM chip power gating out of tpm_transmit()")
Reported-by: Christian Bundy <christianbundy@fraction.io>
Signed-off-by: Jerry Snitselaar <jsnitsel@redhat.com>
---
v2: fix stable cc to correct address
drivers/char/tpm/tpm_tis_core.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/char/tpm/tpm_tis_core.c b/drivers/char/tpm/tpm_tis_core.c
index 270f43acbb77..cb101cec8f8b 100644
--- a/drivers/char/tpm/tpm_tis_core.c
+++ b/drivers/char/tpm/tpm_tis_core.c
@@ -974,13 +974,14 @@ int tpm_tis_core_init(struct device *dev, struct tpm_tis_data *priv, int irq,
* to make sure it works. May as well use that command to set the
* proper timeouts for the driver.
*/
+ tpm_chip_start(chip);
if (tpm_get_timeouts(chip)) {
dev_err(dev, "Could not get TPM timeouts and durations\n");
rc = -ENODEV;
+ tpm_stop_chip(chip);
goto out_err;
}
- tpm_chip_start(chip);
chip->flags |= TPM_CHIP_FLAG_IRQ;
if (irq) {
tpm_tis_probe_irq_single(chip, intmask, IRQF_SHARED,
--
2.24.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] tpm_tis: turn on TPM before calling tpm_get_timeouts
[not found] ` <20191112204623.GG5584@ziepe.ca>
@ 2019-11-12 21:14 ` Jerry Snitselaar
0 siblings, 0 replies; 4+ messages in thread
From: Jerry Snitselaar @ 2019-11-12 21:14 UTC (permalink / raw)
To: Jason Gunthorpe
Cc: Jarkko Sakkinen, linux-integrity, Peter Huewe,
Linux List Kernel Mailing, stable, Christian Bundy
On Tue Nov 12 19, Jason Gunthorpe wrote:
>On Tue, Nov 12, 2019 at 01:31:09PM -0700, Jerry Snitselaar wrote:
>> On Tue, Nov 12, 2019 at 1:28 PM Jerry Snitselaar <jsnitsel@redhat.com> wrote:
>> >
>> > On Tue, Nov 12, 2019 at 1:26 PM Jason Gunthorpe <jgg@ziepe.ca> wrote:
>> > >
>> > > On Tue, Nov 12, 2019 at 01:23:33PM -0700, Jerry Snitselaar wrote:
>> > > > On Tue, Nov 12, 2019 at 1:03 PM Jarkko Sakkinen
>> > > > <jarkko.sakkinen@linux.intel.com> wrote:
>> > > > >
>> > > > > On Mon, Nov 11, 2019 at 04:34:18PM -0700, Jerry Snitselaar wrote:
>> > > > > > With power gating moved out of the tpm_transmit code we need
>> > > > > > to power on the TPM prior to calling tpm_get_timeouts.
>> > > > > >
>> > > > > > Cc: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
>> > > > > > Cc: Peter Huewe <peterhuewe@gmx.de>
>> > > > > > Cc: Jason Gunthorpe <jgg@ziepe.ca>
>> > > > > > Cc: linux-kernel@vger.kernel.org
>> > > > > > Cc: linux-stable@vger.kernel.org
>> > > > > > Fixes: a3fbfae82b4c ("tpm: take TPM chip power gating out of tpm_transmit()")
>> > > > > > Reported-by: Christian Bundy <christianbundy@fraction.io>
>> > > > > > Signed-off-by: Jerry Snitselaar <jsnitsel@redhat.com>
>> > > > > > drivers/char/tpm/tpm_tis_core.c | 3 ++-
>> > > > > > 1 file changed, 2 insertions(+), 1 deletion(-)
>> > > > > >
>> > > > > > diff --git a/drivers/char/tpm/tpm_tis_core.c b/drivers/char/tpm/tpm_tis_core.c
>> > > > > > index 270f43acbb77..cb101cec8f8b 100644
>> > > > > > +++ b/drivers/char/tpm/tpm_tis_core.c
>> > > > > > @@ -974,13 +974,14 @@ int tpm_tis_core_init(struct device *dev, struct tpm_tis_data *priv, int irq,
>> > > > > > * to make sure it works. May as well use that command to set the
>> > > > > > * proper timeouts for the driver.
>> > > > > > */
>> > > > > > + tpm_chip_start(chip);
>> > > > > > if (tpm_get_timeouts(chip)) {
>> > > > > > dev_err(dev, "Could not get TPM timeouts and durations\n");
>> > > > > > rc = -ENODEV;
>> > > > > > + tpm_stop_chip(chip);
>> > > > > > goto out_err;
>> > > > > > }
>> > > > >
>> > > > > Couldn't this call just be removed?
>> > > > >
>> > > > > /Jarkko
>> > > > >
>> > > >
>> > > > Probably. It will eventually get called when tpm_chip_register
>> > > > happens. I don't know what the reason was for trying it prior to the
>> > > > irq probe.
>> > >
>> > > At least tis once needed the timeouts before registration because it
>> > > was issuing TPM commands to complete its setup.
>> > >
>> > > If timeouts have not been set then no TPM command should be executed.
>> >
>> > Would it function with the timeout values set at the beginning of
>> > tpm_tis_core_init (max values)?
>>
>> I guess that doesn't set the duration values though
>
>There is no reason to use anything but the correct timeouts, as read
>from the device.
>
>Jason
>
Should there be a check in tpm1_get_timeouts and tpm2_get_timeouts:
if (chip->flags & TPM_CHIP_FLAG_HAVE_TIMEOUTS)
return 0;
to skip going through it again in the auto startup code if it was
already called and set?
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v3] tpm_tis: turn on TPM before calling tpm_get_timeouts
[not found] <20191111233418.17676-1-jsnitsel@redhat.com>
2019-11-12 0:03 ` [PATCH v2] tpm_tis: turn on TPM before calling tpm_get_timeouts Jerry Snitselaar
[not found] ` <20191112200328.GA11213@linux.intel.com>
@ 2019-11-13 0:02 ` Jerry Snitselaar
2019-11-14 16:59 ` Jarkko Sakkinen
2 siblings, 1 reply; 4+ messages in thread
From: Jerry Snitselaar @ 2019-11-13 0:02 UTC (permalink / raw)
To: linux-integrity
Cc: Jerry Snitselaar, Jarkko Sakkinen, Peter Huewe, Jason Gunthorpe,
linux-kernel, stable, Christian Bundy
With power gating moved out of the tpm_transmit code we need
to power on the TPM prior to calling tpm_get_timeouts.
Cc: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Cc: Peter Huewe <peterhuewe@gmx.de>
Cc: Jason Gunthorpe <jgg@ziepe.ca>
Cc: linux-kernel@vger.kernel.org
Cc: stable@vger.kernel.org
Fixes: a3fbfae82b4c ("tpm: take TPM chip power gating out of tpm_transmit()")
Reported-by: Christian Bundy <christianbundy@fraction.io>
Signed-off-by: Jerry Snitselaar <jsnitsel@redhat.com>
---
v3: call tpm_chip_stop in error path
v2: fix stable cc to correct address
drivers/char/tpm/tpm_tis_core.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/char/tpm/tpm_tis_core.c b/drivers/char/tpm/tpm_tis_core.c
index 270f43acbb77..806acc666696 100644
--- a/drivers/char/tpm/tpm_tis_core.c
+++ b/drivers/char/tpm/tpm_tis_core.c
@@ -974,13 +974,14 @@ int tpm_tis_core_init(struct device *dev, struct tpm_tis_data *priv, int irq,
* to make sure it works. May as well use that command to set the
* proper timeouts for the driver.
*/
+ tpm_chip_start(chip);
if (tpm_get_timeouts(chip)) {
dev_err(dev, "Could not get TPM timeouts and durations\n");
rc = -ENODEV;
+ tpm_chip_stop(chip);
goto out_err;
}
- tpm_chip_start(chip);
chip->flags |= TPM_CHIP_FLAG_IRQ;
if (irq) {
tpm_tis_probe_irq_single(chip, intmask, IRQF_SHARED,
--
2.24.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v3] tpm_tis: turn on TPM before calling tpm_get_timeouts
2019-11-13 0:02 ` [PATCH v3] " Jerry Snitselaar
@ 2019-11-14 16:59 ` Jarkko Sakkinen
0 siblings, 0 replies; 4+ messages in thread
From: Jarkko Sakkinen @ 2019-11-14 16:59 UTC (permalink / raw)
To: Jerry Snitselaar
Cc: linux-integrity, Peter Huewe, Jason Gunthorpe, linux-kernel,
stable, Christian Bundy
On Tue, Nov 12, 2019 at 05:02:43PM -0700, Jerry Snitselaar wrote:
> With power gating moved out of the tpm_transmit code we need
> to power on the TPM prior to calling tpm_get_timeouts.
>
> Cc: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
> Cc: Peter Huewe <peterhuewe@gmx.de>
> Cc: Jason Gunthorpe <jgg@ziepe.ca>
> Cc: linux-kernel@vger.kernel.org
> Cc: stable@vger.kernel.org
> Fixes: a3fbfae82b4c ("tpm: take TPM chip power gating out of tpm_transmit()")
> Reported-by: Christian Bundy <christianbundy@fraction.io>
> Signed-off-by: Jerry Snitselaar <jsnitsel@redhat.com>
> ---
> v3: call tpm_chip_stop in error path
> v2: fix stable cc to correct address
>
> drivers/char/tpm/tpm_tis_core.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/char/tpm/tpm_tis_core.c b/drivers/char/tpm/tpm_tis_core.c
> index 270f43acbb77..806acc666696 100644
> --- a/drivers/char/tpm/tpm_tis_core.c
> +++ b/drivers/char/tpm/tpm_tis_core.c
> @@ -974,13 +974,14 @@ int tpm_tis_core_init(struct device *dev, struct tpm_tis_data *priv, int irq,
> * to make sure it works. May as well use that command to set the
> * proper timeouts for the driver.
> */
> + tpm_chip_start(chip);
> if (tpm_get_timeouts(chip)) {
> dev_err(dev, "Could not get TPM timeouts and durations\n");
> rc = -ENODEV;
> + tpm_chip_stop(chip);
> goto out_err;
> }
>
> - tpm_chip_start(chip);
As the commit describes the call is not there for any other reason than
pinging the TPM.
/Jarkko
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2019-11-14 16:59 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <20191111233418.17676-1-jsnitsel@redhat.com>
2019-11-12 0:03 ` [PATCH v2] tpm_tis: turn on TPM before calling tpm_get_timeouts Jerry Snitselaar
[not found] ` <20191112200328.GA11213@linux.intel.com>
[not found] ` <CALzcddtMiSzhgZv5R6xqb1Amyk7cdY4mJdYDS86KRxH4wR_EGA@mail.gmail.com>
[not found] ` <20191112202623.GB5584@ziepe.ca>
[not found] ` <CALzcddtse-4bKWaA0+ns-gVKGyQzMrYWS4n1rFpbbhKLb83z7g@mail.gmail.com>
[not found] ` <CALzcddv2aLQ1krYFeNtWNOxyF3aSD0-p3j_p3CgS2Vx-__sQPA@mail.gmail.com>
[not found] ` <20191112204623.GG5584@ziepe.ca>
2019-11-12 21:14 ` [PATCH] " Jerry Snitselaar
2019-11-13 0:02 ` [PATCH v3] " Jerry Snitselaar
2019-11-14 16:59 ` Jarkko Sakkinen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).