mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] cli()/sti() fix for drivers/net/ewrk3.c
@ 2002-10-03  0:59 Denis Vlasenko
  2002-10-02 20:45 ` Francois Romieu
  0 siblings, 1 reply; 4+ messages in thread
From: Denis Vlasenko @ 2002-10-03  0:59 UTC (permalink / raw)
  To: linux-kernel; +Cc: Andrew Morton, Jeff Garzik, David S. Miller

These are my first patches for network drivers.
Please comment if I'm doing something wrong.
Compile tested. Testers with hw wanted.
--
vda

diff -u --recursive linux-2.5.38orig/drivers/net/ewrk3.c linux-2.5.38/drivers/net/ewrk3.c
--- linux-2.5.38orig/drivers/net/ewrk3.c	Sun Sep 22 04:25:09 2002
+++ linux-2.5.38/drivers/net/ewrk3.c	Wed Oct  2 01:29:31 2002
@@ -1631,6 +1631,7 @@
 	u_long iobase = dev->base_addr;
 	int i, j, status = 0;
 	u_char csr;
+	unsigned long flags;
 	union ewrk3_addr {
 		u_char addr[HASH_TABLE_LEN * ETH_ALEN];
 		u_short val[(HASH_TABLE_LEN * ETH_ALEN) >> 1];
@@ -1746,18 +1747,18 @@

 		break;
 	case EWRK3_GET_STATS:	/* Get the driver statistics */
-		cli();
+		spin_lock_irqsave(&lp->hw_lock, flags);
 		ioc->len = sizeof(lp->pktStats);
 		if (copy_to_user(ioc->data, &lp->pktStats, ioc->len))
 			status = -EFAULT;
-		sti();
+		spin_unlock_irqrestore(&lp->hw_lock,flags);

 		break;
 	case EWRK3_CLR_STATS:	/* Zero out the driver statistics */
 		if (capable(CAP_NET_ADMIN)) {
-			cli();
+			spin_lock_irqsave(&lp->hw_lock, flags);
 			memset(&lp->pktStats, 0, sizeof(lp->pktStats));
-			sti();
+			spin_unlock_irqrestore(&lp->hw_lock,flags);
 		} else {
 			status = -EPERM;
 		}

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2002-10-03  9:20 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-10-03  0:59 [PATCH] cli()/sti() fix for drivers/net/ewrk3.c Denis Vlasenko
2002-10-02 20:45 ` Francois Romieu
2002-10-03 13:08   ` Denis Vlasenko
2002-10-03 14:14     ` Denis Vlasenko

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®