Re: [PATCH v3 1/4] tpm: Use a threaded interrupt handler
From: Lino Sanfilippo
Date: Tue May 04 2021 - 18:55:18 EST
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.
Regards,
Lino