From: Jeff Garzik <jeff@garzik.org>
To: akpm@osdl.org, arjan@linux.intel.com
Cc: netdev@vger.kernel.org, mingo@elte.hu, bcrl@kvack.org
Subject: Re: [patch 7/8] lock validator: fix ns83820.c irq-flags bug
Date: Sun, 11 Jun 2006 10:55:42 -0400 [thread overview]
Message-ID: <448C2EEE.1020405@garzik.org> (raw)
In-Reply-To: <200606090519.k595JmDG032032@shell0.pdx.osdl.net>
akpm@osdl.org wrote:
> From: Ingo Molnar <mingo@elte.hu>
>
> Barry K. Nathan reported the following lockdep warning:
>
> [ 197.343948] BUG: warning at kernel/lockdep.c:1856/trace_hardirqs_on()
> [ 197.345928] [<c010329b>] show_trace_log_lvl+0x5b/0x105
> [ 197.346359] [<c0103896>] show_trace+0x1b/0x20
> [ 197.346759] [<c01038ed>] dump_stack+0x1f/0x24
> [ 197.347159] [<c012efa2>] trace_hardirqs_on+0xfb/0x185
> [ 197.348873] [<c029b009>] _spin_unlock_irq+0x24/0x2d
> [ 197.350620] [<e09034e8>] do_tx_done+0x171/0x179 [ns83820]
> [ 197.350895] [<e090445c>] ns83820_irq+0x149/0x20b [ns83820]
> [ 197.351166] [<c013b4b8>] handle_IRQ_event+0x1d/0x52
> [ 197.353216] [<c013c6c2>] handle_level_irq+0x97/0xe1
> [ 197.355157] [<c01048c3>] do_IRQ+0x8b/0xac
> [ 197.355612] [<c0102d9d>] common_interrupt+0x25/0x2c
The driver's locking is definitely wrong, but I don't think this is the
fix, because PCI drivers with a single interrupt should be using
spin_lock() in the interrupt handler. Anything more would be uncivilized :)
/me starts to do a better patch...
Jesus, the locking here is awful. No wonder there are bugs.
Since this driver isn't seeing a ton of work these days, I think the
best thing to do would be to _simplify_ the locking. This driver is
grabbing so many locks, turning interrupts off+on so often that any
benefit the multiple locks had is probably long gone, particularly on
modern machines.
Let me see what I can do with it...
Jeff
next parent reply other threads:[~2006-06-11 14:55 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <200606090519.k595JmDG032032@shell0.pdx.osdl.net>
2006-06-11 14:55 ` Jeff Garzik [this message]
2006-06-11 15:00 ` [patch 7/8] lock validator: fix ns83820.c irq-flags bug Arjan van de Ven
2006-06-11 16:09 ` Jeff Garzik
2006-06-11 16:12 ` Arjan van de Ven
2006-06-11 17:01 ` Jeff Garzik
2006-06-11 17:02 ` Arjan van de Ven
2006-06-11 20:28 ` Benjamin LaHaise
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=448C2EEE.1020405@garzik.org \
--to=jeff@garzik.org \
--cc=akpm@osdl.org \
--cc=arjan@linux.intel.com \
--cc=bcrl@kvack.org \
--cc=mingo@elte.hu \
--cc=netdev@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;
as well as URLs for NNTP newsgroup(s).