[PATCH 9/10] net: remove cli()/sti() from drivers/net/tulip/xircom_tulip_cb.c

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Signed-off-by: James Nelson <james4765@xxxxxxxxx>

diff -urN --exclude='*~' linux-2.6.10-mm2-original/drivers/net/tulip/xircom_tulip_cb.c linux-2.6.10-mm2/drivers/net/tulip/xircom_tulip_cb.c
--- linux-2.6.10-mm2-original/drivers/net/tulip/xircom_tulip_cb.c	2005-01-08 12:16:34.000000000 -0500
+++ linux-2.6.10-mm2/drivers/net/tulip/xircom_tulip_cb.c	2005-01-11 18:37:42.485410177 -0500
@@ -361,8 +361,8 @@
 		TxThresh10 | TxStoreForw | TxThreshMask | EnableTxRx | FullDuplexBit;
     int csr5, csr5_22_20, csr5_19_17, currcsr6, attempts = 200;
     unsigned long flags;
-    save_flags(flags);
-    cli();
+    /* disable interrupts */
+    local_irq_save(flags);
 	/* mask out the reserved bits that always read 0 on the Xircom cards */
 	newcsr6 &= ~ReservedZeroMask;
 	/* or in the reserved bits that always read 1 */
@@ -371,7 +371,7 @@
     if (((newcsr6 & strict_bits) == (currcsr6 & strict_bits)) ||
 	((currcsr6 & ~EnableTxRx) == 0)) {
 		outl(newcsr6, ioaddr + CSR6);	/* safe */
-		restore_flags(flags);
+		local_irq_restore(flags);
 		return;
     }
     /* make sure the transmitter and receiver are stopped first */
@@ -389,7 +389,7 @@
 			printk(KERN_INFO DRV_NAME ": outl_CSR6 too many attempts,"
 				   "csr5=0x%08x\n", csr5);
 			outl(newcsr6, ioaddr + CSR6);  /* unsafe but do it anyway */
-			restore_flags(flags);
+			local_irq_restore(flags);
 			return;
 		}
 		outl(currcsr6, ioaddr + CSR6);
@@ -397,7 +397,7 @@
     }
     /* now it is safe to change csr6 */
     outl(newcsr6, ioaddr + CSR6);
-    restore_flags(flags);
+    local_irq_restore(flags);
 }
 
 
@@ -1473,16 +1473,14 @@
 			return -ENODEV;
 		return 0;
 	case SIOCGMIIREG:		/* Read MII PHY register. */
-		save_flags(flags);
-		cli();
+		spin_lock_irqsave(&tp->lock, flags);
 		data[3] = mdio_read(dev, data[0] & 0x1f, data[1] & 0x1f);
-		restore_flags(flags);
+		spin_unlock_irqrestore(&tp->lock, flags);
 		return 0;
 	case SIOCSMIIREG:		/* Write MII PHY register. */
 		if (!capable(CAP_NET_ADMIN))
 			return -EPERM;
-		save_flags(flags);
-		cli();
+		spin_lock_irqsave(&tp->lock, flags);
 		if (data[0] == tp->phys[0]) {
 			u16 value = data[2];
 			switch (data[1]) {
@@ -1502,7 +1500,7 @@
 			check_duplex(dev);
 		}
 		mdio_write(dev, data[0] & 0x1f, data[1] & 0x1f, data[2]);
-		restore_flags(flags);
+		spin_unlock_irqrestore(&tp->lock, flags);
 		return 0;
 	default:
 		return -EOPNOTSUPP;
@@ -1610,7 +1608,7 @@
 		unsigned int entry;
 		int dummy = -1;
 
-		save_flags(flags); cli();
+		spin_lock_irqsave(&tp->lock, flags);
 		entry = tp->cur_tx++ % TX_RING_SIZE;
 
 		if (entry != 0) {
@@ -1637,7 +1635,7 @@
 		}
 		if (dummy >= 0)
 			tp->tx_ring[dummy].status = Tx0DescOwned;
-		restore_flags(flags);
+		spin_unlock_irqrestore(&tp->lock, flags);
 		/* Trigger an immediate transmit demand. */
 		outl(0, ioaddr + CSR1);
 	}
-
: send the line "unsubscribe linux-net" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux 802.1Q VLAN]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Git]     [Bugtraq]     [Yosemite News and Information]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux PCI]     [Linux Admin]     [Samba]

  Powered by Linux