git.samba.org
/
sfrench
/
cifs-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
[sfrench/cifs-2.6.git]
/
drivers
/
net
/
via-rhine.c
diff --git
a/drivers/net/via-rhine.c
b/drivers/net/via-rhine.c
index 081402cb05fddae50f43e3126285d04f2aa88f47..1fd70583be444089b3c6f402477f204bb3128335 100644
(file)
--- a/
drivers/net/via-rhine.c
+++ b/
drivers/net/via-rhine.c
@@
-1220,6
+1220,7
@@
static netdev_tx_t rhine_start_tx(struct sk_buff *skb,
struct rhine_private *rp = netdev_priv(dev);
void __iomem *ioaddr = rp->base;
unsigned entry;
struct rhine_private *rp = netdev_priv(dev);
void __iomem *ioaddr = rp->base;
unsigned entry;
+ unsigned long flags;
/* Caution: the write order is important here, set the field
with the "ownership" bits last. */
/* Caution: the write order is important here, set the field
with the "ownership" bits last. */
@@
-1263,7
+1264,7
@@
static netdev_tx_t rhine_start_tx(struct sk_buff *skb,
cpu_to_le32(TXDESC | (skb->len >= ETH_ZLEN ? skb->len : ETH_ZLEN));
/* lock eth irq */
cpu_to_le32(TXDESC | (skb->len >= ETH_ZLEN ? skb->len : ETH_ZLEN));
/* lock eth irq */
- spin_lock_irq
(&rp->lock
);
+ spin_lock_irq
save(&rp->lock, flags
);
wmb();
rp->tx_ring[entry].tx_status = cpu_to_le32(DescOwn);
wmb();
wmb();
rp->tx_ring[entry].tx_status = cpu_to_le32(DescOwn);
wmb();
@@
-1282,7
+1283,7
@@
static netdev_tx_t rhine_start_tx(struct sk_buff *skb,
dev->trans_start = jiffies;
dev->trans_start = jiffies;
- spin_unlock_irq
(&rp->lock
);
+ spin_unlock_irq
restore(&rp->lock, flags
);
if (debug > 4) {
printk(KERN_DEBUG "%s: Transmit frame #%d queued in slot %d.\n",
if (debug > 4) {
printk(KERN_DEBUG "%s: Transmit frame #%d queued in slot %d.\n",