Re: Re: [PATCH v3 1/2] tpm_tis_core: add optional max xfer size check

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxxxxxxx>
> > 
> > Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen-VuQAYsv1563Yd54FQh9/CA@xxxxxxxxxxxxxxxx>
> > 
> > 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@xxxxxxxxxxxx/
> 
> > > +		}
> > >   		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
> > 



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux Kernel]     [Linux Kernel Hardening]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux