lkml.org 
[lkml]   [2003]   [Aug]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Subject[PATCH 2.6.0-test4][NET] ni5010.c: remove cli/sti
From
Date
Hi,

drivers/net/ni5010.c:
This patch replaces cli/sti with spinlocks. Compiles fine though
untested.

Vinay

--- linux-2.6.0-test4/drivers/net/ni5010.c 2003-07-15 17:22:18.000000000 +0530
+++ linux-2.6.0-test4-nvk/drivers/net/ni5010.c 2003-08-24 20:29:35.000000000 +0530
@@ -96,6 +96,7 @@
struct net_device_stats stats;
int o_pkt_size;
int i_pkt_size;
+ spinlock_t tx_lock;
};

/* Index to functions, as function prototypes. */
@@ -280,11 +281,16 @@
/* DMA is not supported (yet?), so no use detecting it */

if (dev->priv == NULL) {
+ struct ni5010_local* lp;
+
dev->priv = kmalloc(sizeof(struct ni5010_local), GFP_KERNEL|GFP_DMA);
if (dev->priv == NULL) {
printk(KERN_WARNING "%s: Failed to allocate private memory\n", dev->name);
return -ENOMEM;
}
+
+ lp = (struct ni5010_local*)dev->priv;
+ spin_lock_init(&lp->tx_lock);
}

PRINTK2((KERN_DEBUG "%s: I/O #10 passed!\n", dev->name));
@@ -693,8 +699,7 @@
buf_offs = NI5010_BUFSIZE - length - pad;
lp->o_pkt_size = length + pad;

- save_flags(flags);
- cli();
+ spin_lock_irqsave(&lp->tx_lock, flags);

outb(0, EDLC_RMASK); /* Mask all receive interrupts */
outb(0, IE_MMODE); /* Put Xmit buffer on system bus */
@@ -712,7 +717,7 @@
outb(MM_EN_XMT | MM_MUX, IE_MMODE); /* Begin transmission */
outb(XM_ALL, EDLC_XMASK); /* Cause interrupt after completion or fail */

- restore_flags(flags);
+ spin_unlock_irqrestore(&lp->tx_lock, flags);

netif_wake_queue(dev);


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:48    [W:0.025 / U:4.328 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site