On Thu, Apr 03, 2025 at 02:00:26PM +0100, Jonathan McDowell wrote:
> On Thu, Apr 03, 2025 at 01:56:37PM +0200, Michal Suchánek wrote:
> > On Thu, Apr 03, 2025 at 12:00:36PM +0100, Jonathan McDowell wrote:
> > > On Wed, Apr 02, 2025 at 10:07:39PM +0200, Michal Suchánek wrote:
> > > > On Wed, Apr 02, 2025 at 06:45:40PM +0100, Jonathan McDowell wrote:
> > > > > On Wed, Apr 02, 2025 at 07:21:30PM +0200, Michal Suchanek wrote:
> > > > > > With some Infineon chips the timeouts in tpm_tis_send_data (both B 
> > > > > > and
> > > > > > C) can reach up to about 2250 ms.
> > > > > >
> > > > > > Extend the timeout duration to accommodate this.
> > > > >
> > > > > The problem here is the bump of timeout_c is going to interact poorly 
> > > > > with
> > > > > the Infineon errata workaround, as now we'll wait 4s instead of 200ms 
> > > > > to
> > > > > detect the stuck status change.
> > > >
> > > > Yes, that's problematic. Is it possible to detect the errata by anything
> > > > other than waiting for the timeout to expire?
> > > 
> > > Not that I'm aware of, nor have seen in my experimentation. It's a "stuck"
> > > status, so the timeout is how it's detected.
> > > 
> > > OOI, have you tried back porting the fixes that are in mainline for 6.15 
> > > to
> > > your frankenkernel? I _think_ the errata fix might end up resolving at 
> > > least
> > > the timeout for valid for you, as a side effect? We're currently rolling
> > > them out across our fleet, but I don't have enough runtime yet to be sure
> > > they've sorted all the timeout instances we see.
> > 
> > When was that merged?
> 
> It hit Linus' tree last Friday I believe.
> 
> > The change I see is that sometimes EAGAIN is returned instead of ETIME
> > but based on the previous discussion this is unlikely to help.
> 
> That sounds like you might have picked up the version with the typo that I
> posted to the list; it got fixed up before making it to mainline. The two
> patches I've backported locally are in mainline as:
> 
> 7146dffa875cd00e7a7f918e1fce79c7593ac1fa tpm, tpm_tis: Fix timeout handling 
> when waiting for TPM status
> de9e33df7762abbfc2a1568291f2c3a3154c6a9d tpm, tpm_tis: Workaround failed 
> command reception on Infineon devices

Indeed, it adds a retry in tpm_send_main as well. That might work, needs
some testing on the affected hardware. With that changing only the B
timeout should suffice.

Thanks

Michal

Reply via email to