From: Jeff Garzik <jgarzik@pobox.com>
To: Grant Grundler <grundler@parisc-linux.org>
Cc: Andrew Morton <akpm@osdl.org>,
netdev@vger.kernel.org, Val Henson <val.henson@gmail.com>
Subject: Re: PATCH 2.6.17-rc5 tulip free_irq() called too late
Date: Thu, 08 Jun 2006 11:32:39 -0400 [thread overview]
Message-ID: <44884317.8070601@pobox.com> (raw)
In-Reply-To: <20060608152221.GC8246@colo.lackof.org>
Grant Grundler wrote:
> On Thu, Jun 08, 2006 at 10:43:04AM -0400, Jeff Garzik wrote:
>> (CC'ing our newly minted tulip maintainer, Val)
>
> Excellent!
> Has MAINTAINERS file been updated? :)
It should be updated, yes.
>> Calling free_irq() while the chip is still active is just a bad idea,
>> because the chip could raise an interrupt, creating a
>> screaming-interrupts situation. Consider especially the case of shared
>> interrupts here, as a concrete example of how this won't work.
>
> The chip IRQ gets turned off in tulip_down().
> It won't be screaming for very long.
Then you admit that you add a race.
> No one will hear it screaming and no one will care.
False. Easy counter-example already provided: Shared interrupts.
For some IRQ architectures, even without shared interrupts, this could
easily trigger the kernel's screaming-irq detection code.
> Secondly, if tulip has a problem with shared IRQs, it's already there.
> We would have called free_irq() anyway - just a bit later.
Yes... AFTER we told the chip to stop DMA'ing, and delivering interrupts.
I'm frankly surprised you don't see the obvious, natural ordering. You
stop the hardware from wanting to deliver interrupts, before
unregistering the irq handler. IOW you turn out the lights, before
leaving the room.
> In the shared IRQ case, I expect free_irq() to unlink this instance
> of the tulip interrupt handler from the CPU vector list. If that
Irrelevant -- that doesn't stop the tulip hardware from raising the irq,
nor stop the system from attempting to deliver it [in all cases]. In
the shared interrupt case, that means that another driver's irq handler
will be called for an event tulip hardware raised.
Jeff
next prev parent reply other threads:[~2006-06-08 15:32 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-05-31 19:52 PATCH 2.6.17-rc5 tulip free_irq() called too late Grant Grundler
2006-06-08 14:43 ` Jeff Garzik
2006-06-08 15:22 ` Grant Grundler
2006-06-08 15:32 ` Grant Grundler
2006-06-08 15:38 ` Jeff Garzik
2006-06-08 15:47 ` Grant Grundler
2006-06-08 15:32 ` Jeff Garzik [this message]
2006-06-08 15:36 ` Grant Grundler
2006-06-08 17:01 ` Grant Grundler
2006-06-13 23:55 ` PATCHv3 " Grant Grundler
2006-06-14 0:06 ` Valerie Henson
2006-06-14 0:33 ` Jeff Garzik
2006-06-14 4:44 ` Grant Grundler
2006-06-14 13:05 ` Kyle McMartin
2006-06-14 14:54 ` Grant Grundler
2006-06-14 15:03 ` Jeff Garzik
2006-06-14 18:14 ` Grant Grundler
2006-06-14 19:51 ` Jeff Garzik
2006-06-14 22:25 ` Grant Grundler
2006-06-14 20:47 ` Francois Romieu
2006-06-14 22:30 ` Grant Grundler
2006-06-15 20:30 ` Francois Romieu
2006-06-16 5:47 ` Grant Grundler
2006-06-16 7:32 ` Jeff Garzik
2006-06-16 15:25 ` Grant Grundler
[not found] ` <20060616152400.GA7868@colo.lackof.org>
[not found] ` <4492CE98.50900@pobox.com>
2006-06-16 16:06 ` Grant Grundler
2006-06-16 16:16 ` Jeff Garzik
2006-06-22 0:43 ` Valerie Henson
2006-06-23 5:00 ` Grant Grundler
2006-06-26 22:31 ` [PATCH] Fix tulip shutdown DMA/irq race Valerie Henson
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=44884317.8070601@pobox.com \
--to=jgarzik@pobox.com \
--cc=akpm@osdl.org \
--cc=grundler@parisc-linux.org \
--cc=netdev@vger.kernel.org \
--cc=val.henson@gmail.com \
/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;
as well as URLs for NNTP newsgroup(s).