Message ID | 20210406052829.22826-1-zhuguangqing83@gmail.com (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
Series | power: supply: Fix missing IRQF_ONESHOT as only threaded handler | expand |
Hi, On Tue, Apr 06, 2021 at 01:28:29PM +0800, zhuguangqing83@gmail.com wrote: > From: Guangqing Zhu <zhuguangqing83@gmail.com> > > Coccinelle noticed: > 1. drivers/power/supply/pm2301_charger.c:1089:7-27: ERROR: Threaded IRQ > with no primary handler requested without IRQF_ONESHOT > 2. drivers/power/supply/tps65090-charger.c:303:8-33: ERROR: Threaded IRQ > with no primary handler requested without IRQF_ONESHOT > 3. drivers/power/supply/tps65217_charger.c:239:8-33: ERROR: Threaded IRQ > with no primary handler requested without IRQF_ONESHOT > 4. drivers/power/supply/lp8788-charger.c:502:8-28: ERROR: Threaded IRQ > with no primary handler requested without IRQF_ONESHOT > > Signed-off-by: Guangqing Zhu <zhuguangqing83@gmail.com> > --- I merged a patch fixing missing IRQF_ONESHOT flags in power-supply from dongjian two weeks ago as 2469b836fa83. Please make sure you are basing your work on up to date for-next branches before sending out patches! Thanks, -- Sebastian > drivers/power/supply/lp8788-charger.c | 2 +- > drivers/power/supply/pm2301_charger.c | 2 +- > drivers/power/supply/tps65090-charger.c | 3 ++- > drivers/power/supply/tps65217_charger.c | 4 ++-- > 4 files changed, 6 insertions(+), 5 deletions(-) > > diff --git a/drivers/power/supply/lp8788-charger.c b/drivers/power/supply/lp8788-charger.c > index e7931ffb7151..397e5a03b7d9 100644 > --- a/drivers/power/supply/lp8788-charger.c > +++ b/drivers/power/supply/lp8788-charger.c > @@ -501,7 +501,7 @@ static int lp8788_set_irqs(struct platform_device *pdev, > > ret = request_threaded_irq(virq, NULL, > lp8788_charger_irq_thread, > - 0, name, pchg); > + IRQF_ONESHOT, name, pchg); > if (ret) > break; > } > diff --git a/drivers/power/supply/pm2301_charger.c b/drivers/power/supply/pm2301_charger.c > index ac06ecf7fc9c..a3bfb9612b17 100644 > --- a/drivers/power/supply/pm2301_charger.c > +++ b/drivers/power/supply/pm2301_charger.c > @@ -1089,7 +1089,7 @@ static int pm2xxx_wall_charger_probe(struct i2c_client *i2c_client, > ret = request_threaded_irq(gpio_to_irq(pm2->pdata->gpio_irq_number), > NULL, > pm2xxx_charger_irq[0].isr, > - pm2->pdata->irq_type, > + pm2->pdata->irq_type | IRQF_ONESHOT, > pm2xxx_charger_irq[0].name, pm2); > > if (ret != 0) { > diff --git a/drivers/power/supply/tps65090-charger.c b/drivers/power/supply/tps65090-charger.c > index 6b0098e5a88b..d55bcc341854 100644 > --- a/drivers/power/supply/tps65090-charger.c > +++ b/drivers/power/supply/tps65090-charger.c > @@ -301,7 +301,8 @@ static int tps65090_charger_probe(struct platform_device *pdev) > > if (irq != -ENXIO) { > ret = devm_request_threaded_irq(&pdev->dev, irq, NULL, > - tps65090_charger_isr, 0, "tps65090-charger", cdata); > + tps65090_charger_isr, IRQF_ONESHOT, > + "tps65090-charger", cdata); > if (ret) { > dev_err(cdata->dev, > "Unable to register irq %d err %d\n", irq, > diff --git a/drivers/power/supply/tps65217_charger.c b/drivers/power/supply/tps65217_charger.c > index 814c2b81fdfe..cba3967ff275 100644 > --- a/drivers/power/supply/tps65217_charger.c > +++ b/drivers/power/supply/tps65217_charger.c > @@ -238,8 +238,8 @@ static int tps65217_charger_probe(struct platform_device *pdev) > for (i = 0; i < NUM_CHARGER_IRQS; i++) { > ret = devm_request_threaded_irq(&pdev->dev, irq[i], NULL, > tps65217_charger_irq, > - 0, "tps65217-charger", > - charger); > + IRQF_ONESHOT, > + "tps65217-charger", charger); > if (ret) { > dev_err(charger->dev, > "Unable to register irq %d err %d\n", irq[i], > -- > 2.17.1 >
diff --git a/drivers/power/supply/lp8788-charger.c b/drivers/power/supply/lp8788-charger.c index e7931ffb7151..397e5a03b7d9 100644 --- a/drivers/power/supply/lp8788-charger.c +++ b/drivers/power/supply/lp8788-charger.c @@ -501,7 +501,7 @@ static int lp8788_set_irqs(struct platform_device *pdev, ret = request_threaded_irq(virq, NULL, lp8788_charger_irq_thread, - 0, name, pchg); + IRQF_ONESHOT, name, pchg); if (ret) break; } diff --git a/drivers/power/supply/pm2301_charger.c b/drivers/power/supply/pm2301_charger.c index ac06ecf7fc9c..a3bfb9612b17 100644 --- a/drivers/power/supply/pm2301_charger.c +++ b/drivers/power/supply/pm2301_charger.c @@ -1089,7 +1089,7 @@ static int pm2xxx_wall_charger_probe(struct i2c_client *i2c_client, ret = request_threaded_irq(gpio_to_irq(pm2->pdata->gpio_irq_number), NULL, pm2xxx_charger_irq[0].isr, - pm2->pdata->irq_type, + pm2->pdata->irq_type | IRQF_ONESHOT, pm2xxx_charger_irq[0].name, pm2); if (ret != 0) { diff --git a/drivers/power/supply/tps65090-charger.c b/drivers/power/supply/tps65090-charger.c index 6b0098e5a88b..d55bcc341854 100644 --- a/drivers/power/supply/tps65090-charger.c +++ b/drivers/power/supply/tps65090-charger.c @@ -301,7 +301,8 @@ static int tps65090_charger_probe(struct platform_device *pdev) if (irq != -ENXIO) { ret = devm_request_threaded_irq(&pdev->dev, irq, NULL, - tps65090_charger_isr, 0, "tps65090-charger", cdata); + tps65090_charger_isr, IRQF_ONESHOT, + "tps65090-charger", cdata); if (ret) { dev_err(cdata->dev, "Unable to register irq %d err %d\n", irq, diff --git a/drivers/power/supply/tps65217_charger.c b/drivers/power/supply/tps65217_charger.c index 814c2b81fdfe..cba3967ff275 100644 --- a/drivers/power/supply/tps65217_charger.c +++ b/drivers/power/supply/tps65217_charger.c @@ -238,8 +238,8 @@ static int tps65217_charger_probe(struct platform_device *pdev) for (i = 0; i < NUM_CHARGER_IRQS; i++) { ret = devm_request_threaded_irq(&pdev->dev, irq[i], NULL, tps65217_charger_irq, - 0, "tps65217-charger", - charger); + IRQF_ONESHOT, + "tps65217-charger", charger); if (ret) { dev_err(charger->dev, "Unable to register irq %d err %d\n", irq[i],