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

Matthew Wilcox
2009-03-02T15:48:01Z

On Mon, Mar 02, 2009 at 03:43:03PM +0100, Ingo Molnar wrote:
> * Peter Zijlstra <peterz@infradead.org> wrote:
> > Hi Linus,
> >
> > Would you be willing to take such a patch?
> >
> > Its a rather big one, but if you think its a good idea, I can
> > generate one against whatever tree is needed.
> >
> > Provided I didn't break any !genirq stuff.. then again, that
> > might be a nice incentive to fix up those last few archs.
>
> look good IMO. If there are no objections, and given that it

Perhaps someone could explain why we want to remove it? I just added
it to AHCI for good reason, so I'd like to know why we think it should
be taken away.

I added it because I was adding support for per-port interrupts.
In the interrupt handler, we take the *host* lock (not the port lock).
With multiple interrupt handlers per host, we would have to disable
interrupts in the interrupt handler before taking the lock. Which is
foolish because we've just re-enabled interrupts in the genirq code.
Specifying IRQF_DISABLED means we just run with interrupts disabled.

You can argue that libata/ahci should be using a per-port lock, and
I wouldn't disagree. But I'd still like to know why IRQF_DISABLED is
being removed.

--
Matthew Wilcox Intel Open Source Technology Centre
"Bill, look, we understand that you're interested in selling us this
operating system, but compare it to ours. We can't possibly take such
a retrograde step."