aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/linux/netdevice.h21
-rw-r--r--net/core/dev.c12
2 files changed, 19 insertions, 14 deletions
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index de387c5400b3..96964fb7478b 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -1265,10 +1265,15 @@ static inline void netif_rx_complete(struct net_device *dev,
1265 * 1265 *
1266 * Get network device transmit lock 1266 * Get network device transmit lock
1267 */ 1267 */
1268static inline void netif_tx_lock(struct net_device *dev) 1268static inline void __netif_tx_lock(struct net_device *dev, int cpu)
1269{ 1269{
1270 spin_lock(&dev->_xmit_lock); 1270 spin_lock(&dev->_xmit_lock);
1271 dev->xmit_lock_owner = smp_processor_id(); 1271 dev->xmit_lock_owner = cpu;
1272}
1273
1274static inline void netif_tx_lock(struct net_device *dev)
1275{
1276 __netif_tx_lock(dev, smp_processor_id());
1272} 1277}
1273 1278
1274static inline void netif_tx_lock_bh(struct net_device *dev) 1279static inline void netif_tx_lock_bh(struct net_device *dev)
@@ -1297,6 +1302,18 @@ static inline void netif_tx_unlock_bh(struct net_device *dev)
1297 spin_unlock_bh(&dev->_xmit_lock); 1302 spin_unlock_bh(&dev->_xmit_lock);
1298} 1303}
1299 1304
1305#define HARD_TX_LOCK(dev, cpu) { \
1306 if ((dev->features & NETIF_F_LLTX) == 0) { \
1307 __netif_tx_lock(dev, cpu); \
1308 } \
1309}
1310
1311#define HARD_TX_UNLOCK(dev) { \
1312 if ((dev->features & NETIF_F_LLTX) == 0) { \
1313 netif_tx_unlock(dev); \
1314 } \
1315}
1316
1300static inline void netif_tx_disable(struct net_device *dev) 1317static inline void netif_tx_disable(struct net_device *dev)
1301{ 1318{
1302 netif_tx_lock_bh(dev); 1319 netif_tx_lock_bh(dev);
diff --git a/net/core/dev.c b/net/core/dev.c
index 666c112efb55..e9a6d93a194f 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -1574,18 +1574,6 @@ out_kfree_skb:
1574 return 0; 1574 return 0;
1575} 1575}
1576 1576
1577#define HARD_TX_LOCK(dev, cpu) { \
1578 if ((dev->features & NETIF_F_LLTX) == 0) { \
1579 netif_tx_lock(dev); \
1580 } \
1581}
1582
1583#define HARD_TX_UNLOCK(dev) { \
1584 if ((dev->features & NETIF_F_LLTX) == 0) { \
1585 netif_tx_unlock(dev); \
1586 } \
1587}
1588
1589/** 1577/**
1590 * dev_queue_xmit - transmit a buffer 1578 * dev_queue_xmit - transmit a buffer
1591 * @skb: buffer to transmit 1579 * @skb: buffer to transmit