linux-mips
[Top] [All Lists]

Re: [PATCH] Alchemy: fix edge irq handling

To: Kevin Hickey <khickey@rmicorp.com>
Subject: Re: [PATCH] Alchemy: fix edge irq handling
From: Manuel Lauss <mano@roarinelk.homelinux.net>
Date: Wed, 21 Jan 2009 07:48:56 +0100
Cc: Ralf Baechle <ralf@linux-mips.org>, Linux-MIPS <linux-mips@linux-mips.org>
In-reply-to: <1232498838.3678.17.camel@kh-d820>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <20090120100353.GA18971@roarinelk.homelinux.net> <1232498838.3678.17.camel@kh-d820>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mutt/1.5.16 (2007-06-09)
Hi Kevin,

> Have you actually seen this happen (outside of inducing it manually)?  I
> have some concern that by doing this we may either miss interrupts on
> devices that send a lot (by design) or miss a design bug in a system
> because we are masking out some interrupts.  I know that system
> stability is important, but I don't like hiding problems.

Yes, in a customer project.  A simple pushbutton which connects a pulled-up
gpio pin to ground.  Push it, instant hang (handler called over and over
again) when it is not debounced.  With a single edge and a much lower
edge-frequency it obviously works fine (see timer).

(And, handle_edge_irq() _does_ call mask_ack() after all).


Best regards,
        Manuel Lauss

 
> =Kevin
> 
> On Tue, 2009-01-20 at 11:03 +0100, Manuel Lauss wrote:
> > Introduce separate mack_ack callbacks which really do shut up the
> > edge-triggered irqs when called.  Without this change, high-frequency
> > edge interrupts can result in an endless irq storm, hanging the system.
> > 
> > This can be easily triggered for example by setting an irq to falling
> > edge type and manually connecting the associated pin to ground.
> > 

<Prev in Thread] Current Thread [Next in Thread>