From: Ingo Molnar 8390.c knows that ei_local->page_lock can only be used by an irq context that it disabled - and can hence take the ->page_lock without disabling hardirqs. Teach lockdep about this. Has no effect on non-lockdep kernels. Signed-off-by: Ingo Molnar Cc: Arjan van de Ven Cc: Jeff Garzik Signed-off-by: Andrew Morton --- drivers/net/8390.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff -puN drivers/net/8390.c~lockdep-annotate-8390c-disable_irq drivers/net/8390.c --- a/drivers/net/8390.c~lockdep-annotate-8390c-disable_irq +++ a/drivers/net/8390.c @@ -249,7 +249,7 @@ void ei_tx_timeout(struct net_device *de /* Ugly but a reset can be slow, yet must be protected */ - disable_irq_nosync(dev->irq); + disable_irq_nosync_lockdep(dev->irq); spin_lock(&ei_local->page_lock); /* Try to restart the card. Perhaps the user has fixed something. */ @@ -257,7 +257,7 @@ void ei_tx_timeout(struct net_device *de NS8390_init(dev, 1); spin_unlock(&ei_local->page_lock); - enable_irq(dev->irq); + enable_irq_lockdep(dev->irq); netif_wake_queue(dev); } _