From: Rogier Wolff <R.E.Wolff@BitWizard.nl>
To: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Rogier Wolff <R.E.Wolff@BitWizard.nl>,
Jeff Garzik <jeff@garzik.org>,
alan@redhat.com, Andrew Morton <akpm@linux-foundation.org>,
LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 05/15] drivers/char: minor irq handler cleanups
Date: Tue, 22 Apr 2008 12:13:26 +0200 [thread overview]
Message-ID: <20080422101326.GD23482@bitwizard.nl> (raw)
In-Reply-To: <1208851540.9640.95.camel@pasglop>
On Tue, Apr 22, 2008 at 06:05:40PM +1000, Benjamin Herrenschmidt wrote:
>
> On Sat, 2008-04-19 at 08:00 +0200, Rogier Wolff wrote:
> >
> > You added a "XXX Using free_irq in the interrupt is not wise!". When I
> > wrote that code, I didn't know about this. These lines triggered when
> > the level-triggered PCI interrupt stuck "active" this would mean that
> > NO userspace code would get executed anymore: Hard lock up. Difficult
> > to debug. This happend a few times during development when the code
> > behind the "if (!polled)": "tell the hardware we've seen the
> > interrupt" didn't work. On the other hand, some failures in the field
> > have triggered this. So I think it's wise to keep it in. Disabling the
> > interrupt on the card is not an option, because that's exactly what
> > this is supposed to catch: We're unable to make the card stop
> > interrupting the CPU.
> >
> > Note that it also doesn't work (i.e. hard lock of the machine) if some
> > other driver is using the same interupt.
>
> You should let the kernel generic code deal with the runaway interrupt,
> it should be capable of doing so nowadays pretty reliably.
>
> free_irq() is definitely not going to be happy when it start messing
> with /proc from an interrupt... It will at least give you a WARN_ON.
The situation is NOT normal operation. It is an emergency measure in
an attempt to prevent a full hang. It is great that other parts of the
kernel also "shout" that something is wrong.
Consider it similar to a "kernel null pointer dereference". Once that
happens, all bets are off. In practise you've probably seen one, and
you were able to continue to work. It is advisable to save everything
you can, and reboot. This is similar.
The "generic code for runaway interrupts" didn't exist when this was
written. If it exists, and works for the case that this was written
for, then all is fine, and we can remove my code. As you can see, I
copied over the code from one driver to the next after I got bitten
again with the second driver. So having something generic is of course
preferable. :-)
Roger.
--
** R.E.Wolff@BitWizard.nl ** http://www.BitWizard.nl/ ** +31-15-2600998 **
** Delftechpark 26 2628 XH Delft, The Netherlands. KVK: 27239233 **
*-- BitWizard writes Linux device drivers for any device you may have! --*
Q: It doesn't work. A: Look buddy, doesn't work is an ambiguous statement.
Does it sit on the couch all day? Is it unemployed? Please be specific!
Define 'it' and what it isn't doing. --------- Adapted from lxrbot FAQ
next prev parent reply other threads:[~2008-04-22 10:13 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-04-18 23:22 [PATCH 01/15] ARM minor irq handler cleanups Jeff Garzik
2008-04-18 23:22 ` [PATCH 02/15] [SPARC] " Jeff Garzik
2008-04-18 23:33 ` David Miller
2008-04-18 23:22 ` [PATCH 03/15] [BLACKFIN] " Jeff Garzik
2008-04-22 3:27 ` Bryan Wu
2008-04-18 23:22 ` [PATCH 04/15] [PPC] " Jeff Garzik
2008-04-19 14:57 ` Kumar Gala
2008-04-18 23:22 ` [PATCH 05/15] drivers/char: " Jeff Garzik
2008-04-19 6:00 ` Rogier Wolff
2008-04-22 8:05 ` Benjamin Herrenschmidt
2008-04-22 10:13 ` Rogier Wolff [this message]
2008-04-22 10:46 ` Benjamin Herrenschmidt
2008-04-19 16:16 ` Alan Cox
2008-04-21 1:38 ` Jeff Garzik
2008-04-18 23:22 ` [PATCH 06/15] [SCSI] " Jeff Garzik
2008-04-18 23:22 ` [PATCH 07/15] [SCSI] aha1542: " Jeff Garzik
2008-04-18 23:22 ` [PATCH 08/15] [ISDN] " Jeff Garzik
2008-04-18 23:22 ` [PATCH 09/15] [AVR32] remove unused 'irq' argument from local_timer_interrupt() Jeff Garzik
2008-04-18 23:22 ` [PATCH 10/15] [IA64] minor irq handler cleanups Jeff Garzik
2008-04-18 23:23 ` [PATCH 11/15] [RTC] " Jeff Garzik
2008-04-18 23:23 ` [PATCH 12/15] [MIPS] pmc-sierra/msp71xx/msp_hwbutton.c: " Jeff Garzik
2008-04-28 20:53 ` Ralf Baechle
2008-04-18 23:23 ` [PATCH 13/15] [X86] standard vm86 irq handler Jeff Garzik
2008-04-21 13:52 ` Ingo Molnar
2008-04-18 23:23 ` [PATCH 14/15] Canonicalize several irq handlers Jeff Garzik
2008-04-18 23:23 ` [PATCH 15/15] [INPUT, PCMCIA] avoid use of 'irq' function arg Jeff Garzik
2008-04-18 23:29 ` [PATCH 01/15] ARM minor irq handler cleanups Lennert Buytenhek
2008-04-19 0:25 ` Jeff Garzik
2008-04-19 16:14 ` Lennert Buytenhek
2008-04-18 23:44 ` Andrew Morton
2008-04-19 0:21 ` Jeff Garzik
2008-04-19 1:17 ` Andrew Morton
2008-04-20 22:17 ` Jeff Garzik
2008-04-20 22:40 ` Russell King
2008-04-20 22:49 ` Jeff Garzik
2008-04-19 8:17 ` Russell King
2008-04-19 8:28 ` Jeff Garzik
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20080422101326.GD23482@bitwizard.nl \
--to=r.e.wolff@bitwizard.nl \
--cc=akpm@linux-foundation.org \
--cc=alan@redhat.com \
--cc=benh@kernel.crashing.org \
--cc=jeff@garzik.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox