• David Brownell's avatar
    dm9000: locking bugfix · e3162d38
    David Brownell authored
    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: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    e3162d38
dm9000.c 33.3 KB