On Wed, May 05, 2021 at 12:54:37AM +0200, Lino Sanfilippo wrote: > > Hi, > > > On 03.05.21 at 17:14, Jarkko Sakkinen wrote: > > On Sat, May 01, 2021 at 03:57:24PM +0200, Lino Sanfilippo wrote: > >> The interrupt handler uses tpm_tis_read32() and tpm_tis_write32() to access > >> the interrupt status register. In case of SPI those accesses are done with > >> the spi_bus_lock mutex held. This means that the status register cannot > >> be read or written in interrupt context. > >> > >> For this reason request a threaded interrupt handler so that the required > >> accesses can be done in process context. > >> > >> Reviewed-by: Stefan Berger <stefanb@xxxxxxxxxxxxx> > >> Signed-off-by: Lino Sanfilippo <LinoSanfilippo@xxxxxx> > > > > No fixes tag. > > > > The short summary scopes now the whole TPM subsystem ("tpm:"), but the fix > > is targetted *only* for tpm_tis_spi. How about "tpm, tpm_tis_spi: Allow to > > sleep in the interrupt handler"? > > > > This also changes the semantics tpm_tis_*, not just tpm_tis_spi, which is > > not acceptable. We cannot backport a fix like this. > > > > Probably you should just add a parameter to tpm_tis_core_init() to hint > > that threaded IRQ is required, and then only conditionally do so. > > > > Sure, this is doable although to be honest I dont see the issue with also the > non-SPI code running in the threaded interrupt handler. The functionality should > not change (especially since interrupts are not even working right now) and it would > save us a special treatment of the SPI case. It's violation of "3) Separate your changes" [*]. E.g. we do not want to introduce "improvements" or "simplifications" to stable kernels on purpose. [*] https://www.kernel.org/doc/html/v5.11/process/submitting-patches.html> /Jarkko