drivers: rtc: rtc-wm831x: Add IRQF_ONESHOT flag
diff mbox series

Message ID 20190711175615.GA13651@hari-Inspiron-1545
State Accepted
Headers show
Series
  • drivers: rtc: rtc-wm831x: Add IRQF_ONESHOT flag
Related show

Commit Message

Hariprasad Kelam July 11, 2019, 5:56 p.m. UTC
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 <hariprasad.kelam@gmail.com>
---
 drivers/rtc/rtc-wm831x.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Charles Keepax July 12, 2019, 1:28 p.m. UTC | #1
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 <hariprasad.kelam@gmail.com>
> ---
>  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 <ckeepax@opensource.cirrus.com>


Thanks,
Charles

>  				wm831x_rtc);
>  	if (ret != 0) {
>  		dev_err(&pdev->dev, "Failed to request alarm IRQ %d: %d\n",
> -- 
> 2.7.4
>
Alexandre Belloni July 13, 2019, 7:43 p.m. UTC | #2
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 <hariprasad.kelam@gmail.com>
> ---
>  drivers/rtc/rtc-wm831x.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
Applied, thanks.

Patch
diff mbox series

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",