diff options
author | Russell King <rmk+lkml@arm.linux.org.uk> | 2006-08-14 23:00:20 -0700 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2006-08-19 17:44:29 -0400 |
commit | 76cb4fe7c0926c2c59f4a36ab169aa2d547c93d1 (patch) | |
tree | 2fa424665a54379e3d3ee07e7b9d6beb6101a462 /drivers/net/smc91x.c | |
parent | ab1976682f31661a898b92593bccfeae14d0a0ae (diff) | |
download | kernel_samsung_smdk4412-76cb4fe7c0926c2c59f4a36ab169aa2d547c93d1.zip kernel_samsung_smdk4412-76cb4fe7c0926c2c59f4a36ab169aa2d547c93d1.tar.gz kernel_samsung_smdk4412-76cb4fe7c0926c2c59f4a36ab169aa2d547c93d1.tar.bz2 |
[PATCH] lockdep: fix smc91x
When booting using root-nfs, I'm seeing (independently) two lockdep dumps
in the smc91x driver. The patch below fixes both. Both dumps look like
real locking issues.
Nico - please review and ack if you think the patch is correct.
Dump 1:
Sending DHCP requests .
=================================
[ INFO: inconsistent lock state ]
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/net/smc91x.c')
-rw-r--r-- | drivers/net/smc91x.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/net/smc91x.c b/drivers/net/smc91x.c index 3d8dcb6..cf62373 100644 --- a/drivers/net/smc91x.c +++ b/drivers/net/smc91x.c @@ -321,12 +321,12 @@ static void smc_reset(struct net_device *dev) DBG(2, "%s: %s\n", dev->name, __FUNCTION__); /* Disable all interrupts, block TX tasklet */ - spin_lock(&lp->lock); + spin_lock_irq(&lp->lock); SMC_SELECT_BANK(2); SMC_SET_INT_MASK(0); pending_skb = lp->pending_tx_skb; lp->pending_tx_skb = NULL; - spin_unlock(&lp->lock); + spin_unlock_irq(&lp->lock); /* free any pending tx skb */ if (pending_skb) { @@ -448,12 +448,12 @@ static void smc_shutdown(struct net_device *dev) DBG(2, "%s: %s\n", CARDNAME, __FUNCTION__); /* no more interrupts for me */ - spin_lock(&lp->lock); + spin_lock_irq(&lp->lock); SMC_SELECT_BANK(2); SMC_SET_INT_MASK(0); pending_skb = lp->pending_tx_skb; lp->pending_tx_skb = NULL; - spin_unlock(&lp->lock); + spin_unlock_irq(&lp->lock); if (pending_skb) dev_kfree_skb(pending_skb); |