Message ID | 20191004150510.6278-1-krzk@kernel.org |
---|---|
State | Accepted |
Headers | show |
Series | [RFT] rtc: da9063: Handle invalid IRQ from platform_get_irq_byname() | expand |
On 04 October 2019 16:05, Krzysztof Kozlowski wrote: > platform_get_irq_byname() might return -errno which later would be > cast to an unsigned int and used in request_irq(). > > Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org> This doesn't break the existing RTC functionality when running up on my test board with DA9063. Although very unlikely to occur it does make sense so: Tested-by: Adam Thomson <Adam.Thomson.Opensource@diasemi.com> > > --- > > Not marking as cc-stable as this was not reproduced and not tested. > --- > drivers/rtc/rtc-da9063.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/rtc/rtc-da9063.c b/drivers/rtc/rtc-da9063.c > index 15908d51b1cb..046b1d4c3dae 100644 > --- a/drivers/rtc/rtc-da9063.c > +++ b/drivers/rtc/rtc-da9063.c > @@ -483,6 +483,9 @@ static int da9063_rtc_probe(struct platform_device > *pdev) > rtc->rtc_dev->uie_unsupported = 1; > > irq_alarm = platform_get_irq_byname(pdev, "ALARM"); > + if (irq_alarm < 0) > + return irq_alarm; > + > ret = devm_request_threaded_irq(&pdev->dev, irq_alarm, NULL, > da9063_alarm_event, > IRQF_TRIGGER_LOW | IRQF_ONESHOT, > --
On 04/10/2019 17:05:10+0200, Krzysztof Kozlowski wrote: > platform_get_irq_byname() might return -errno which later would be > cast to an unsigned int and used in request_irq(). > > Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org> > > --- > > Not marking as cc-stable as this was not reproduced and not tested. > --- > drivers/rtc/rtc-da9063.c | 3 +++ > 1 file changed, 3 insertions(+) > Applied, thanks.
diff --git a/drivers/rtc/rtc-da9063.c b/drivers/rtc/rtc-da9063.c index 15908d51b1cb..046b1d4c3dae 100644 --- a/drivers/rtc/rtc-da9063.c +++ b/drivers/rtc/rtc-da9063.c @@ -483,6 +483,9 @@ static int da9063_rtc_probe(struct platform_device *pdev) rtc->rtc_dev->uie_unsupported = 1; irq_alarm = platform_get_irq_byname(pdev, "ALARM"); + if (irq_alarm < 0) + return irq_alarm; + ret = devm_request_threaded_irq(&pdev->dev, irq_alarm, NULL, da9063_alarm_event, IRQF_TRIGGER_LOW | IRQF_ONESHOT,
platform_get_irq_byname() might return -errno which later would be cast to an unsigned int and used in request_irq(). Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org> --- Not marking as cc-stable as this was not reproduced and not tested. --- drivers/rtc/rtc-da9063.c | 3 +++ 1 file changed, 3 insertions(+)