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

Peter Zijlstra
2009-03-02T16:00:29Z

On Mon, 2009-03-02 at 08:47 -0700, Matthew Wilcox wrote:
> 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.

The idea is to mandate IRQF_DISABLED for everybody, and since it doesn't
do any good to have it a flag if you have it always enabled, remove
it ;-)