Messages in this thread | | | Date | Mon, 11 Dec 2006 19:54:01 +0000 | From | Russell King <> | Subject | Re: [PATCH -rt][RESEND] fix preempt hardirqs on OMAP |
| |
On Mon, Dec 11, 2006 at 11:38:28AM -0800, Daniel Walker wrote: > On Mon, 2006-12-11 at 20:05 +0100, Ingo Molnar wrote: > > * Daniel Walker <dwalker@mvista.com> wrote: > > > > > + /* > > > + * Some boards will disable an interrupt when it > > > + * sets IRQ_PENDING . So we have to remove the flag > > > + * and re-enable to handle it. > > > + */ > > > + if (desc->status & IRQ_PENDING) { > > > + desc->status &= ~IRQ_PENDING; > > > + if (desc->chip) > > > + desc->chip->enable(irq); > > > + goto restart; > > > + } > > > > what if the irq got disabled meanwhile? Also, chip->enable is a > > compatibility method, not something we should use in a flow handler. > > I don't know how other arches deal with IRQ_PENDING, but ARM (OMAP at > least) disables the IRQ on IRQ_PENDING.
Please point out where it's doing that, and I'll take a look to see if it's doing something it shouldn't.
-- Russell King Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/ maintainer of: - 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/
| |