]> git.baikalelectronics.ru Git - kernel.git/commit
dm9000: locking bugfix
authorDavid Brownell <dbrownell@users.sourceforge.net>
Mon, 23 Mar 2009 04:28:39 +0000 (21:28 -0700)
committerDavid S. Miller <davem@davemloft.net>
Mon, 23 Mar 2009 04:28:39 +0000 (21:28 -0700)
commitfe7c25f6739d922bbff3325670b9e47a9800aa3e
treed3affce735bf848e98150541fe2c487319a29bd0
parente0611e815bd252b7a8b4cf4121c20018df710b7c
dm9000: locking bugfix

This fixes a locking bug in the dm9000 driver.  It calls
request_irq() without setting IRQF_DISABLED ... which is
correct for handlers that support IRQ sharing, since that
behavior is not guaranteed for shared IRQs.  However, its
IRQ handler then wrongly assumes that IRQs are blocked.
So the fix just uses the right spinlock primitives in the
IRQ handler.

NOTE:  this is a classic example of the type of bug which
lockdep currently masks by forcibly setting IRQF_DISABLED
on IRQ handlers that did not request that flag.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dm9000.c