Messages in this thread | | | Date | Thu, 29 Nov 2007 08:57:01 -0500 (EST) | From | Steven Rostedt <> | Subject | Re: [PATCH PREEMPT_RT]: On AT91 ARM: GPIO Interrupt handling can/will stall forever |
| |
On Thu, 29 Nov 2007, Russell King - ARM Linux wrote:
> On Thu, Nov 29, 2007 at 12:27:30PM +0100, Remy Bohmer wrote: > > Ah, and looking at the changes to the file, the addition of the mask > and unmask was done by someone who didn't understand what this was > trying to do. So that change should be backed out. >
Perhaps only part of the change should be backed out. The part that masks the irq in the handle_simple_irq code.
That's from commit 76d2160147f43f982dfe881404cfde9fd0a9da21 which is to not disable an irq line when disable_irq is called. A form of lazy disable irq.
This speeds up code that uses disable_irq, since the line is only masked when an interrupt actually arrives. Using disable_irq / enable_irq does no IRQ chip modifications if an interrupt from the IRQ line does not arrive between the two.
Now the question is, can something that uses handle_simple_irq call disable_irq? If there is no mask function, I would assume that this would be a noop in such a case. If this is true, then we could remove the mask from handle_simple_irq. But then we might want to add a BUG() in disable_irq for simple_irqs.
-- Steve
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |