[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Pine.LNX.4.64N.0710161759050.22596@blysk.ds.pg.gda.pl>
Date: Tue, 16 Oct 2007 18:19:32 +0100 (BST)
From: "Maciej W. Rozycki" <macro@...ux-mips.org>
To: Jarek Poplawski <jarkao2@...pl>
cc: Andy Fleming <afleming@...escale.com>,
Andrew Morton <akpm@...ux-foundation.org>,
Jeff Garzik <jgarzik@...ox.com>, netdev@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH] PHYLIB: IRQ event workqueue handling fixes
On Tue, 16 Oct 2007, Jarek Poplawski wrote:
> Yes, it's all right here. Sorry for bothering - I should've found this
> by myself.
Ah, no problem -- even with the right keys you may sometimes get lost in
the results.
> I've still some doubts about this possible enable_irq() after
> free_irq(). If it's the only handler the status would be changed again
> and at least some of this code in check_irq_resend() would be run, but
> I can miss something again or/and this doesn't matter, as well.
Well, enable_irq() and disable_irq() themselves are nesting, so they are
not a problem. OTOH, free_irq() does not seem to maintain the depth count
correctly, which looks like a bug to me and which could trigger regardless
of whether flush_scheduled_work() or cancel_work_sync() was called.
The reason is CONFIG_DEBUG_SHIRQ which makes a simulated interrupt event
be sent at the end of free_irq(). It looks like a problem that is
complementary to one I signalled here:
http://lkml.org/lkml/2007/9/12/82
with respect to request_irq(), where, similarly, such an interrupt event
is sent at the beginning. It looks like nobody was concerned back then,
but perhaps it is time to do a better investigation now and propose a
solution.
I'll think about it and thanks for your inquisitiveness that has led to
these conclusions.
Maciej
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists