diff options
Diffstat (limited to 'net/core/netpoll.c')
-rw-r--r-- | net/core/netpoll.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/net/core/netpoll.c b/net/core/netpoll.c index 907fb5e36c02..e6645b4f330a 100644 --- a/net/core/netpoll.c +++ b/net/core/netpoll.c | |||
@@ -72,7 +72,6 @@ module_param(carrier_timeout, uint, 0644); | |||
72 | static int netpoll_start_xmit(struct sk_buff *skb, struct net_device *dev, | 72 | static int netpoll_start_xmit(struct sk_buff *skb, struct net_device *dev, |
73 | struct netdev_queue *txq) | 73 | struct netdev_queue *txq) |
74 | { | 74 | { |
75 | const struct net_device_ops *ops = dev->netdev_ops; | ||
76 | int status = NETDEV_TX_OK; | 75 | int status = NETDEV_TX_OK; |
77 | netdev_features_t features; | 76 | netdev_features_t features; |
78 | 77 | ||
@@ -92,9 +91,7 @@ static int netpoll_start_xmit(struct sk_buff *skb, struct net_device *dev, | |||
92 | skb->vlan_tci = 0; | 91 | skb->vlan_tci = 0; |
93 | } | 92 | } |
94 | 93 | ||
95 | status = ops->ndo_start_xmit(skb, dev); | 94 | status = netdev_start_xmit(skb, dev, txq, false); |
96 | if (status == NETDEV_TX_OK) | ||
97 | txq_trans_update(txq); | ||
98 | 95 | ||
99 | out: | 96 | out: |
100 | return status; | 97 | return status; |
@@ -116,7 +113,7 @@ static void queue_process(struct work_struct *work) | |||
116 | continue; | 113 | continue; |
117 | } | 114 | } |
118 | 115 | ||
119 | txq = netdev_get_tx_queue(dev, skb_get_queue_mapping(skb)); | 116 | txq = skb_get_tx_queue(dev, skb); |
120 | 117 | ||
121 | local_irq_save(flags); | 118 | local_irq_save(flags); |
122 | HARD_TX_LOCK(dev, txq, smp_processor_id()); | 119 | HARD_TX_LOCK(dev, txq, smp_processor_id()); |