Re: [PATCH] rtc: max77686: fix irqf_oneshot.cocci warnings

From: Krzysztof Kozlowski
Date: Thu Feb 18 2016 - 03:51:10 EST


On 18.02.2016 17:46, Valentin Rothberg wrote:
>
>
> Hi Krzysztof,
>
> On 2/18/16 9:13 AM, Krzysztof Kozlowski wrote:
>> On 18.02.2016 17:06, Valentin Rothberg wrote:
>>> From: kbuild test robot <fengguang.wu@xxxxxxxxx>
>>>
>>> Since commit 1c6c69525b40 ("genirq: Reject bogus threaded irq requests")
>>> threaded IRQs without a primary handler need to be requested with
>>> IRQF_ONESHOT, otherwise the request will fail.
>>>
>>> So pass the IRQF_ONESHOT flag in this case.
>>>
>>> Generated by: scripts/coccinelle/misc/irqf_oneshot.cocci
>>>
>>> CC: Laxman Dewangan <ldewangan@xxxxxxxxxx>
>>> Signed-off-by: Fengguang Wu <fengguang.wu@xxxxxxxxx>
>>> Signed-off-by: Valentin Rothberg <valentin.rothberg@xxxxxxxxxx>
>>> ---
>>> drivers/rtc/rtc-max77686.c | 4 ++--
>>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>>
>>
>> Nack, because:
>> 1. AFAIR this is a false positive.
>
> Looking at kernel/irq/manage.c +1250 such requests will be rejected
> unconditionally when the primary handler is NULL, except when the chip
> is marked to be oneshot safe.
>
> Is there another semantic that I am not aware of? In case the script
> produces false positives, I will change it immediately.

The handler is "irq_nested_primary_handler".

>> 2. Was it tested? Was it reproduced? Was the bug actually spotted or
>> just coccicheck pointed this and you assumed that "request will fail"?
>>
>> Coccicheck is a great tool... but not necessarily for pointing run-time
>> bugs.
>
> I did not test it. To me the issue rather seems seems like something
> where Coccinelle is really good at, static analysis.

Yet, this is somehow subtle (device inter-dependencies) so it falls out
of static into runtime (I mean runtime analysis is needed).

Best regards,
Krzysztof