On Thu, Mar 18, 2021 at 10:54:25AM +0800, Tian Tao wrote: > disable_irq() after request_irq() still has a time gap in which > interrupts can come. request_irq() with IRQF_NO_AUTOEN flag will > disable IRQ auto-enable because of requesting. > > Signed-off-by: Tian Tao <tiantao6@xxxxxxxxxxxxx> > Link: https://lore.kernel.org/patchwork/patch/1388765/ > > v2: add the Link. Reviewed-by: Jarkko Sakkinen <jarkko@xxxxxxxxxx> /Jarkko > --- > drivers/char/tpm/tpm_tis_i2c_cr50.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/char/tpm/tpm_tis_i2c_cr50.c b/drivers/char/tpm/tpm_tis_i2c_cr50.c > index ec9a65e..25299e5 100644 > --- a/drivers/char/tpm/tpm_tis_i2c_cr50.c > +++ b/drivers/char/tpm/tpm_tis_i2c_cr50.c > @@ -705,14 +705,14 @@ static int tpm_cr50_i2c_probe(struct i2c_client *client, > > if (client->irq > 0) { > rc = devm_request_irq(dev, client->irq, tpm_cr50_i2c_int_handler, > - IRQF_TRIGGER_FALLING | IRQF_ONESHOT, > + IRQF_TRIGGER_FALLING | IRQF_ONESHOT | > + IRQF_NO_AUTOEN, > dev->driver->name, chip); > if (rc < 0) { > dev_err(dev, "Failed to probe IRQ %d\n", client->irq); > return rc; > } > > - disable_irq(client->irq); > priv->irq = client->irq; > } else { > dev_warn(dev, "No IRQ, will use %ums delay for TPM ready\n", > -- > 2.7.4 > >