[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Yqoj6zaIrNB+aKph@iki.fi>
Date: Wed, 15 Jun 2022 21:24:43 +0300
From: Jarkko Sakkinen <jarkko@...nel.org>
To: LinoSanfilippo@....de
Cc: peterhuewe@....de, jgg@...pe.ca, stefanb@...ux.vnet.ibm.com,
linux@...ewoehner.de, linux-integrity@...r.kernel.org,
linux-kernel@...r.kernel.org, l.sanfilippo@...bus.com,
lukas@...ner.de, p.rosenberger@...bus.com
Subject: Re: [PATCH v5 08/10] tpm, tpm_tis: Request threaded interrupt handler
On Fri, Jun 10, 2022 at 01:08:44PM +0200, LinoSanfilippo@....de wrote:
> From: Lino Sanfilippo <l.sanfilippo@...bus.com>
>
> The TIS interrupt handler at least has to read and write the interrupt
> status register. In case of SPI both operations result in a call to
> tpm_tis_spi_transfer() which uses the bus_lock_mutex of the spi device
> and thus must only be called from a sleepable context.
>
> To ensure this request a threaded interrupt handler.
>
> Fixes: 1a339b658d9d ("tpm_tis_spi: Pass the SPI IRQ down to the driver")
> Signed-off-by: Lino Sanfilippo <l.sanfilippo@...bus.com>
> ---
> drivers/char/tpm/tpm_tis_core.c | 7 +++++--
> 1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/char/tpm/tpm_tis_core.c b/drivers/char/tpm/tpm_tis_core.c
> index 0ef74979bc2c..8b5aa4fdbe92 100644
> --- a/drivers/char/tpm/tpm_tis_core.c
> +++ b/drivers/char/tpm/tpm_tis_core.c
> @@ -794,8 +794,11 @@ static int tpm_tis_probe_irq_single(struct tpm_chip *chip, u32 intmask,
> int rc;
> u32 int_status;
>
> - if (devm_request_irq(chip->dev.parent, irq, tis_int_handler, flags,
> - dev_name(&chip->dev), chip) != 0) {
> +
> + rc = devm_request_threaded_irq(chip->dev.parent, irq, NULL,
> + tis_int_handler, IRQF_ONESHOT | flags,
> + dev_name(&chip->dev), chip);
> + if (rc) {
> dev_info(&chip->dev, "Unable to request irq: %d for probe\n",
> irq);
> return -1;
> --
> 2.36.1
>
I actually would not add fixes tag to this because given that
interrupt support is quite unusable, this should not cause any
harm.
The code change itself is fine.
BR, Jarkko
Powered by blists - more mailing lists