On Fri, Feb 12, 2021 at 12:06:00PM +0100, Lukasz Majczak wrote: > There are missing calls to tpm_request_locality() before the calls to > the tpm_get_timeouts() and tpm_tis_probe_irq_single() - both functions > internally send commands to the tpm using tpm_tis_send_data() > which in turn, at the very beginning, calls the tpm_tis_status(). > This one tries to read TPM_STS register, what fails and propagates > this error upward. The read fails due to lack of acquired locality, > as it is described in > TCG PC Client Platform TPM Profile (PTP) Specification, > paragraph 6.1 FIFO Interface Locality Usage per Register, > Table 39 Register Behavior Based on Locality Setting for FIFO > - a read attempt to TPM_STS_x Registers returns 0xFF in case of lack > of locality. The described situation manifests itself with > the following warning trace: > > [ 4.324298] TPM returned invalid status > [ 4.324806] WARNING: CPU: 2 PID: 1 at drivers/char/tpm/tpm_tis_core.c:275 tpm_tis_status+0x86/0x8f > > Tested on Samsung Chromebook Pro (Caroline), TPM 1.2 (SLB 9670) > Fixes: a3fbfae82b4c ("tpm: take TPM chip power gating out of tpm_transmit()") > > Signed-off-by: Lukasz Majczak <lma@xxxxxxxxxxxx> > Reviewed-by: Guenter Roeck <linux@xxxxxxxxxxxx> > --- <formletter> This is not the correct way to submit patches for inclusion in the stable kernel tree. Please read: https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html for how to do this properly. </formletter>