ns83820: spin_lock_irq() => spin_lock()
Subsystems (3)
PATCH 1/1 ns83820: spin_lock_irq() => spin_lock()
This is essentially cosmetic. At this point the IRQs are already disabled because we called spin_lock_irq(&dev->rx_info.lock).
The real bug here was fixed back in 2006 in 3a10ccebe: "[PATCH] lock
validator: fix ns83820.c irq-flags bug". Prior to that patch, it was a "spin_lock_irq is not nestable" type bug. The 2006 patch changes the unlock to not re-enable IRQs, which eliminates the potential deadlock.
But this bit was missed. We should change the lock function as well so it balances nicely.
drivers/net/ns83820.c +1 -1
@@ -772,7 +772,7 @@ static int ns83820_setup_rx(struct net_device *ndev)phy_intr (ndev);/* Okay, let it rip */ -spin_lock_irq (&dev->misc_lock); +spin_lock (&dev->misc_lock); dev->IMR_cache |=ISR_PHY ; dev->IMR_cache |=ISR_RXRCMP ;//dev->IMR_cache |= ISR_RXERR;
From: Dan Carpenter <[email protected]>
Date: Wed, 13 Oct 2010 21:18:53 +0200
Quoted 8 lines
This is essentially cosmetic. At this point the IRQs are already disabled because we called
spin_lock_irq(&dev->rx_info.lock).The real bug here was fixed back in 2006 in
3a10ccebe: "[PATCH] lock
validator: fixns83820.cirq-flags bug". Prior to that patch, it was a "spin_lock_irqis not nestable" type bug. The 2006 patch changes the unlock to not re-enable IRQs, which eliminates the potential deadlock.
Quoted 4 lines
But this bit was missed. We should change the lock function as well so it balances nicely.
Signed-off-by Dan Carpenter <[email protected]>
Applied.