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

From: Valentin Rothberg
Date: Thu Feb 18 2016 - 04:03:44 EST


Hi Krzysztof,

On 2/18/16 9:50 AM, Krzysztof Kozlowski wrote:
> 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).

Thanks for your answer. I wasn't aware of this at all.

Best regards,
Valentin