[patch 6/8] arm: ns9xxx: Remove private irq flow handler

STALE5607d

2 messages, 2 authors, 2011-02-03 · open the first message on its own page

[patch 6/8] arm: ns9xxx: Remove private irq flow handler

From: Thomas Gleixner <hidden>
Date: 2011-02-02 21:42:18

An embedded and charset-unspecified text was scrubbed...
Name: arm-ns9xxx-remove-private-irq-handler.patch
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20110202/5c858b71/attachment.ksh>

Re: [patch 6/8] arm: ns9xxx: Remove private irq flow handler

From: Uwe Kleine-König <hidden>
Date: 2011-02-03 07:56:25

Hi Thomas,

On Wed, Feb 02, 2011 at 09:41:27PM -0000, Thomas Gleixner wrote:
handle_prio_irq is almost identical with handle_fasteoi_irq. The
subtle differences are

1) The handler checks for IRQ_DISABLED after the device handler has
   been called. In case it's set it masks the interrupt.

2) When the handler sees IRQ_DISABLED on entry it masks the interupt
   in the same way as handle_fastoei_irq, but does not set the
   IRQ_PENDING flag.

3) Instead of gracefully handling a recursive interrupt it crashes the
   kernel.

#1 is just relevant when a device handler calls disable_irq_nosync()
   and it does not matter whether we mask the interrupt right away or
   not. We handle lazy masking for disable_irq anyway, so there is no
   real reason to have this extra mask in place.

#2 will prevent the resend of a pending interrupt, which can result in
   lost interrupts for edge type interrupts. For level type interrupts
   the resend is a noop in the generic code. According to the
   datasheet all interrupts are level type, so marking them as such
   will result in the exact same behaviour as the private
   handle_prio_irq implementation.

#3 is just stupid. Crashing the kernel instead of handling a problem
   gracefully is just wrong. With the current semantics- all handlers
   run with interrupts disabled - this is even more wrong.

Rename ack to eoi, remove the unused mask_ack, switch to
handle_fasteoi_irq and remove the private function.

Signed-off-by: Thomas Gleixner <redacted>
Cc: Uwe Kleine-Koenig <redacted>
Cc: linux-arm-kernel at lists.infradead.org
I have no access to a ns9xxx machine, but this looks sane.

Acked-by: Uwe Kleine-Koenig <redacted>

Thanks
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help