Messages in this thread | | | Date | Tue, 2 Oct 2007 07:57:17 -0600 | From | "Grant Likely" <> | Subject | Re: [PATCH v2 5/6] Sysace: Move IRQ handler registration to occur after FSM is initialized |
| |
On 10/1/07, Benjamin Herrenschmidt <benh@kernel.crashing.org> wrote: > > On Sun, 2007-09-30 at 16:57 -0600, Grant Likely wrote: > > val |= ACE_CTRL_DATABUFRDYIRQ | ACE_CTRL_ERRORIRQ; > > ace_out(ace, ACE_CTRL, val); > > > > + /* Now we can hook up the irq handler */ > > + if (ace->irq != NO_IRQ) { > > + rc = request_irq(ace->irq, ace_interrupt, 0, > > "systemace", ace); > > + if (rc) { > > + /* Failure - fall back to polled mode */ > > + dev_err(ace->dev, "request_irq failed\n"); > > + ace->irq = NO_IRQ; > > + } > > + } > > + > > I don't know the HW but from the above, it looks like you enable > interrupt emission on the HW before you register the handler, which is > wrong. You should make sure on the contrary that IRQs on the HW are > disabled until after you have registered a handler. > > Only really a problem if you have shared interrupts but still...
Yeah, you're right. Fortunately all current in-tree platforms which use this do not have shared interrupts, but I'd like to be correct on this.
I'll tidy this up and send a fixup patch.
Thanks, g.
-- Grant Likely, B.Sc., P.Eng. Secret Lab Technologies Ltd. grant.likely@secretlab.ca (403) 399-0195 - 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/
| |