Skip to contentSkip to conversation

ns83820: spin_lock_irq() => spin_lock()

PATCH Applied Dan Carpenter 2 participants 2 messages Oct 13, 2010 – Oct 18, 2010

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

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
index 3bbd0aa..84134c7 100644
@@ -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;
maintainer Applied
#1 lore raw

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: 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.

Quoted 4 lines

But this bit was missed. We should change the lock function as well so it balances nicely.

Applied.