Re: [RFC][PATCH] irq: remove IRQF_DISABLED

Linus Torvalds
2009-03-02T19:07:51Z

On Mon, 2 Mar 2009, Bartlomiej Zolnierkiewicz wrote:
>
> Hmm, I said nothing about how it is implemented in the IDE code itself. :)

Bart, you're missing the point. I'm _also_ not at all interested in how
it's implemented in the IDE code.

The whole - and only - point is that there are drivers that are _known_ to
require non-IRQF_DISABLED semantics. IDE is one such one.

> Fixing this is on long-term TODO (there was just a ton of more high-prio
> stuff to take care of first).

Even if you can fix IDE to do everything using softirq's or other tricks
(threads, whatever), nothing really changes. It just means that now there
is one less driver that may need the non-IRQF_DISABLED semantics.

So I'm perfectly happy with

- making IRQF_DISABLED the _default_ (and make the value of the flag be
0, for example, so that people can still _use_ it)

- but when we find a driver that depended on irq's being on, have a new
flag like IRQF_REENABLE, which has the semantics of the current default
of !IRQF_DISABLED

but I don't think it's reasonable to just drop the support. IDE requires
it, and it's been a known requirement for basically forever. Other drivers
with similar issues? Who the heck knows?

I do know that the _generic_ SCSI layer used to have some insane reset
timeouts inside the interrupt handler, and literally *depended* on timer
interrupts happening while inside the SCSI interrupt. I'm hoping that's no
longer the case. But this is the kind of thing that has been going on.

Linus