2019-07-11 18:09:28

by Hariprasad Kelam

[permalink] [raw]
Subject: [PATCH] drivers: rtc: rtc-wm831x: Add IRQF_ONESHOT flag

fix below issue reported by coccicheck
drivers//rtc/rtc-wm831x.c:436:7-32: ERROR: Threaded IRQ with no primary
handler requested without IRQF_ONESHOT

Signed-off-by: Hariprasad Kelam <[email protected]>
---
drivers/rtc/rtc-wm831x.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/rtc/rtc-wm831x.c b/drivers/rtc/rtc-wm831x.c
index d2e8b21..ccef887 100644
--- a/drivers/rtc/rtc-wm831x.c
+++ b/drivers/rtc/rtc-wm831x.c
@@ -435,7 +435,8 @@ static int wm831x_rtc_probe(struct platform_device *pdev)

ret = devm_request_threaded_irq(&pdev->dev, alm_irq, NULL,
wm831x_alm_irq,
- IRQF_TRIGGER_RISING, "RTC alarm",
+ IRQF_TRIGGER_RISING | IRQF_ONESHOT,
+ "RTC alarm",
wm831x_rtc);
if (ret != 0) {
dev_err(&pdev->dev, "Failed to request alarm IRQ %d: %d\n",
--
2.7.4


2019-07-12 13:29:20

by Charles Keepax

[permalink] [raw]
Subject: Re: [PATCH] drivers: rtc: rtc-wm831x: Add IRQF_ONESHOT flag

On Thu, Jul 11, 2019 at 11:26:15PM +0530, Hariprasad Kelam wrote:
> fix below issue reported by coccicheck
> drivers//rtc/rtc-wm831x.c:436:7-32: ERROR: Threaded IRQ with no primary
> handler requested without IRQF_ONESHOT
>
> Signed-off-by: Hariprasad Kelam <[email protected]>
> ---
> drivers/rtc/rtc-wm831x.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/rtc/rtc-wm831x.c b/drivers/rtc/rtc-wm831x.c
> index d2e8b21..ccef887 100644
> --- a/drivers/rtc/rtc-wm831x.c
> +++ b/drivers/rtc/rtc-wm831x.c
> @@ -435,7 +435,8 @@ static int wm831x_rtc_probe(struct platform_device *pdev)
>
> ret = devm_request_threaded_irq(&pdev->dev, alm_irq, NULL,
> wm831x_alm_irq,
> - IRQF_TRIGGER_RISING, "RTC alarm",
> + IRQF_TRIGGER_RISING | IRQF_ONESHOT,
> + "RTC alarm",

I guess this code pre-dates the check in the core that doesn't
allow the default handler with no oneshot (if you check the comment
it definitely looks like this would have worked before that check
was added).

I am a little worried there might be a bit more required to fix this
one. I seem to remember edge triggered IRQs and ONESHOT don't play
very nicely together, but on the flip side this is just a virtual
domain used within the chip so in practice it is probably safe.

A tentative ack from me, but I would certainly appreciate any
additional opinions.

Acked-by: Charles Keepax <[email protected]>


Thanks,
Charles

> wm831x_rtc);
> if (ret != 0) {
> dev_err(&pdev->dev, "Failed to request alarm IRQ %d: %d\n",
> --
> 2.7.4
>

2019-07-13 19:44:20

by Alexandre Belloni

[permalink] [raw]
Subject: Re: [PATCH] drivers: rtc: rtc-wm831x: Add IRQF_ONESHOT flag

On 11/07/2019 23:26:15+0530, Hariprasad Kelam wrote:
> fix below issue reported by coccicheck
> drivers//rtc/rtc-wm831x.c:436:7-32: ERROR: Threaded IRQ with no primary
> handler requested without IRQF_ONESHOT
>
> Signed-off-by: Hariprasad Kelam <[email protected]>
> ---
> drivers/rtc/rtc-wm831x.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
Applied, thanks.

--
Alexandre Belloni, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com