Message ID | 20190813115555.10542-3-bigeasy@linutronix.de |
---|---|
State | Accepted |
Headers | show |
Series | Remove IRQF_ONESHOT | expand |
On Tue, Aug 13, 2019 at 01:55:55PM +0200, Sebastian Andrzej Siewior wrote: > The drivers sets IRQF_ONESHOT and passes only a primary handler. The IRQ > is masked while the primary is handler is invoked independently of > IRQF_ONESHOT. > With IRQF_ONESHOT the core code will not force-thread the interrupt and > this is probably not intended. I *assume* that the original author copied > the IRQ registration from another driver which passed a primary and > secondary handler and removed the secondary handler but keeping the > ONESHOT flag. > > Remove IRQF_ONESHOT. > > Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> There is no driver maintainer for this driver, so I trust you and let's see what happens. Applied to for-next, thanks!
diff --git a/drivers/i2c/busses/i2c-hix5hd2.c b/drivers/i2c/busses/i2c-hix5hd2.c index 4df1434b3597d..8497c7a95dd44 100644 --- a/drivers/i2c/busses/i2c-hix5hd2.c +++ b/drivers/i2c/busses/i2c-hix5hd2.c @@ -445,8 +445,7 @@ static int hix5hd2_i2c_probe(struct platform_device *pdev) hix5hd2_i2c_init(priv); ret = devm_request_irq(&pdev->dev, irq, hix5hd2_i2c_irq, - IRQF_NO_SUSPEND | IRQF_ONESHOT, - dev_name(&pdev->dev), priv); + IRQF_NO_SUSPEND, dev_name(&pdev->dev), priv); if (ret != 0) { dev_err(&pdev->dev, "cannot request HS-I2C IRQ %d\n", irq); goto err_clk;
The drivers sets IRQF_ONESHOT and passes only a primary handler. The IRQ is masked while the primary is handler is invoked independently of IRQF_ONESHOT. With IRQF_ONESHOT the core code will not force-thread the interrupt and this is probably not intended. I *assume* that the original author copied the IRQ registration from another driver which passed a primary and secondary handler and removed the secondary handler but keeping the ONESHOT flag. Remove IRQF_ONESHOT. Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- drivers/i2c/busses/i2c-hix5hd2.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)