Re: [PATCH] block/cpqarray.c: remove IRQF_DISABLED flag

From: Valentin Rothberg
Date: Tue Mar 03 2015 - 04:52:15 EST


On Tue, Mar 3, 2015 at 9:37 AM, Ingo Molnar <mingo@xxxxxxxxxx> wrote:
>
> * Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> wrote:
>
>> On Fri, 27 Feb 2015 13:32:55 +0100 Valentin Rothberg <Valentin.Rothberg@xxxxxxx> wrote:
>>
>> > The IRQF_DISABLED is a NOOP and scheduled to be removed. According to
>> > Ingo Molnar (e58aa3d2d0cc01ad8d6f7f640a0670433f794922) running IRQ
>> > handlers with interrupts enabled can cause stack overflows when the
>> > interrupt line of the issuing device is still active.
>> >
>>
>> I suggest you prepare a patch which removes IRQF_DISABLED entirely.
>
> Yes.
>
>> Several drivers still use it and it is possible that they have been
>> buggy for some time, [...]
>
> Well, IRQF_DISABLED is now the unconditional default, so requesting
> irqs with IRQF_DISABLED is simply superfluous, not buggy, AFAICS.
>
>> [...] so we should be careful to cc the relevant maintainers (they
>> probably don't exist) so they can check out what's going on in their
>> code.
>
> I think part of it might be the stale spinlock related comment in
> Documentation/PCI/MSI-HOWTO.txt which explicitly recommends
> IRQF_DISABLED use. So that reference should be zapped as well.

I sent a patch that fixes that already. See commit
b0e1ee8e1405ae033a0eac01ead275e65e4e6831 ("MSI-HOWTO.txt: remove
reference on IRQF_DISABLED").

> So maybe drivers still using IRQF_DISABLED might not be potentially
> broken drivers at all, but are drivers written by exceptionally
> capable driver authors, who read kernel documentation!

In the context of my PhD, I am diving a little into interrupt handling
in Linux. I feel that a lot of information is scattered over
documentation, source code comments or no comments at all (i.e., the
code itself). Currently I am writing a document (from hard IRQs to
workqueues). As soon as it's finished I will think about how and
where it could be useful in documentation.

Kind regards,
Valentin

> Thanks,
>
> Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/