linux-integrity.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Re: Re: [PATCH v3 1/2] tpm_tis_core: add optional max xfer size check
       [not found]   ` <20160809081402.GA10537@intel.com>
@ 2020-11-19 10:00     ` Dafna Hirschfeld
  2020-11-20 15:15       ` Jarkko Sakkinen
  0 siblings, 1 reply; 2+ messages in thread
From: Dafna Hirschfeld @ 2020-11-19 10:00 UTC (permalink / raw)
  To: linux-integrity, jarkko.sakkinen, apronin, dtor
  Cc: Collabora Kernel ML, Enric Balletbo i Serra

Hi,
I am Dafna Hirschfeld. I work for Collabora on upstreaming patches
found on the chromeos kernel.
This patch is in chromeos and is not merged in mainline.



Am 09.08.16 um 10:14 schrieb Jarkko Sakkinen:
> On Wed, Jul 27, 2016 at 08:49:56PM -0700, Andrey Pronin wrote:
>> If tpm reports a bigger burstcnt than allowed by the physical protocol,
>> set burstcnt to the max allowed value.
>>
>> In practice, seen in case of xfer issues (e.g. in spi interface case,
>> lost header causing flow control issues and wrong values returned on read
>> from TPM_STS). Without catching, causes the physical layer to reject xfer.
>>
>> Signed-off-by: Andrey Pronin <apronin-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
> 
> Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
> 
> I don't have hardware to test this. Someone should validate that it
> does not break anything. Christophe, are you able to do this?
> 
> /Jarkko
> 
>> ---
>>   drivers/char/tpm/tpm_tis_core.c | 9 ++++++++-
>>   drivers/char/tpm/tpm_tis_core.h | 1 +
>>   2 files changed, 9 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/char/tpm/tpm_tis_core.c b/drivers/char/tpm/tpm_tis_core.c
>> index f22caf8..7c4fa0c 100644
>> --- a/drivers/char/tpm/tpm_tis_core.c
>> +++ b/drivers/char/tpm/tpm_tis_core.c
>> @@ -168,8 +168,15 @@ static int get_burstcount(struct tpm_chip *chip)
>>   			return rc;
>>   
>>   		burstcnt = (value >> 8) & 0xFFFF;
>> -		if (burstcnt)
>> +		if (burstcnt) {
>> +			if (priv->phy_ops->max_xfer_size &&
>> +			    (burstcnt > priv->phy_ops->max_xfer_size)) {
>> +				dev_warn(&chip->dev,
>> +					 "Bad burstcnt read: %d\n", burstcnt);
>> +				burstcnt = priv->phy_ops->max_xfer_size;
>> +			}
>>   			return burstcnt;

I see there is patch in mainline "tpm_tis_spi: Remove limitation of transfers to MAX_SPI_FRAMESIZE bytes"
That already limits the transfer length to MAX_SPI_FRAMESIZE. So it seems that this patch is not needed anymore.
Can someone confirm that?

Thank you,
Dafna



[1] https://lore.kernel.org/tpmdd-devel/1488459879-24349-5-git-send-email-peter.huewe@infineon.com/

>> +		}
>>   		msleep(TPM_TIMEOUT);
>>   	} while (time_before(jiffies, stop));
>>   	return -EBUSY;
>> diff --git a/drivers/char/tpm/tpm_tis_core.h b/drivers/char/tpm/tpm_tis_core.h
>> index 9191aab..58e8b14 100644
>> --- a/drivers/char/tpm/tpm_tis_core.h
>> +++ b/drivers/char/tpm/tpm_tis_core.h
>> @@ -102,6 +102,7 @@ struct tpm_tis_phy_ops {
>>   	int (*read16)(struct tpm_tis_data *data, u32 addr, u16 *result);
>>   	int (*read32)(struct tpm_tis_data *data, u32 addr, u32 *result);
>>   	int (*write32)(struct tpm_tis_data *data, u32 addr, u32 src);
>> +	u16 max_xfer_size;
>>   };
>>   
>>   static inline int tpm_tis_read_bytes(struct tpm_tis_data *data, u32 addr,
>> -- 
>> 2.6.6
>>
> 
> ------------------------------------------------------------------------------
> What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
> patterns at an interface-level. Reveals which users, apps, and protocols are
> consuming the most bandwidth. Provides multi-vendor support for NetFlow,
> J-Flow, sFlow and other flows. Make informed decisions using capacity
> planning reports. http://sdm.link/zohodev2dev
> 

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Re: [PATCH v3 1/2] tpm_tis_core: add optional max xfer size check
  2020-11-19 10:00     ` Re: [PATCH v3 1/2] tpm_tis_core: add optional max xfer size check Dafna Hirschfeld
@ 2020-11-20 15:15       ` Jarkko Sakkinen
  0 siblings, 0 replies; 2+ messages in thread
From: Jarkko Sakkinen @ 2020-11-20 15:15 UTC (permalink / raw)
  To: Dafna Hirschfeld
  Cc: linux-integrity, apronin, dtor, Collabora Kernel ML,
	Enric Balletbo i Serra

On Thu, Nov 19, 2020 at 11:00:40AM +0100, Dafna Hirschfeld wrote:
> Hi,
> I am Dafna Hirschfeld. I work for Collabora on upstreaming patches
> found on the chromeos kernel.
> This patch is in chromeos and is not merged in mainline.

Tested-by is missing.

/Jarkko

> Am 09.08.16 um 10:14 schrieb Jarkko Sakkinen:
> > On Wed, Jul 27, 2016 at 08:49:56PM -0700, Andrey Pronin wrote:
> > > If tpm reports a bigger burstcnt than allowed by the physical protocol,
> > > set burstcnt to the max allowed value.
> > > 
> > > In practice, seen in case of xfer issues (e.g. in spi interface case,
> > > lost header causing flow control issues and wrong values returned on read
> > > from TPM_STS). Without catching, causes the physical layer to reject xfer.
> > > 
> > > Signed-off-by: Andrey Pronin <apronin-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
> > 
> > Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
> > 
> > I don't have hardware to test this. Someone should validate that it
> > does not break anything. Christophe, are you able to do this?
> > 
> > /Jarkko
> > 
> > > ---
> > >   drivers/char/tpm/tpm_tis_core.c | 9 ++++++++-
> > >   drivers/char/tpm/tpm_tis_core.h | 1 +
> > >   2 files changed, 9 insertions(+), 1 deletion(-)
> > > 
> > > diff --git a/drivers/char/tpm/tpm_tis_core.c b/drivers/char/tpm/tpm_tis_core.c
> > > index f22caf8..7c4fa0c 100644
> > > --- a/drivers/char/tpm/tpm_tis_core.c
> > > +++ b/drivers/char/tpm/tpm_tis_core.c
> > > @@ -168,8 +168,15 @@ static int get_burstcount(struct tpm_chip *chip)
> > >   			return rc;
> > >   		burstcnt = (value >> 8) & 0xFFFF;
> > > -		if (burstcnt)
> > > +		if (burstcnt) {
> > > +			if (priv->phy_ops->max_xfer_size &&
> > > +			    (burstcnt > priv->phy_ops->max_xfer_size)) {
> > > +				dev_warn(&chip->dev,
> > > +					 "Bad burstcnt read: %d\n", burstcnt);
> > > +				burstcnt = priv->phy_ops->max_xfer_size;
> > > +			}
> > >   			return burstcnt;
> 
> I see there is patch in mainline "tpm_tis_spi: Remove limitation of transfers to MAX_SPI_FRAMESIZE bytes"
> That already limits the transfer length to MAX_SPI_FRAMESIZE. So it seems that this patch is not needed anymore.
> Can someone confirm that?
> 
> Thank you,
> Dafna
> 
> 
> 
> [1] https://lore.kernel.org/tpmdd-devel/1488459879-24349-5-git-send-email-peter.huewe@infineon.com/
> 
> > > +		}
> > >   		msleep(TPM_TIMEOUT);
> > >   	} while (time_before(jiffies, stop));
> > >   	return -EBUSY;
> > > diff --git a/drivers/char/tpm/tpm_tis_core.h b/drivers/char/tpm/tpm_tis_core.h
> > > index 9191aab..58e8b14 100644
> > > --- a/drivers/char/tpm/tpm_tis_core.h
> > > +++ b/drivers/char/tpm/tpm_tis_core.h
> > > @@ -102,6 +102,7 @@ struct tpm_tis_phy_ops {
> > >   	int (*read16)(struct tpm_tis_data *data, u32 addr, u16 *result);
> > >   	int (*read32)(struct tpm_tis_data *data, u32 addr, u32 *result);
> > >   	int (*write32)(struct tpm_tis_data *data, u32 addr, u32 src);
> > > +	u16 max_xfer_size;
> > >   };
> > >   static inline int tpm_tis_read_bytes(struct tpm_tis_data *data, u32 addr,
> > > -- 
> > > 2.6.6
> > > 
> > 
> > ------------------------------------------------------------------------------
> > What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
> > patterns at an interface-level. Reveals which users, apps, and protocols are
> > consuming the most bandwidth. Provides multi-vendor support for NetFlow,
> > J-Flow, sFlow and other flows. Make informed decisions using capacity
> > planning reports. http://sdm.link/zohodev2dev
> > 

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2020-11-20 15:16 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <1468546745-14646-1-git-send-email-apronin@chromium.org>
     [not found] ` <1469677797-74304-2-git-send-email-apronin@chromium.org>
     [not found]   ` <20160809081402.GA10537@intel.com>
2020-11-19 10:00     ` Re: [PATCH v3 1/2] tpm_tis_core: add optional max xfer size check Dafna Hirschfeld
2020-11-20 15:15       ` 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).