diff options
author | Jon Mason <jon.mason@intel.com> | 2013-01-19 04:02:32 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-01-20 18:48:14 -0500 |
commit | d723485cb4ca9eefaf43fd9f165554094b97f2c2 (patch) | |
tree | 46cc40cc8d28e7318dc4a9c8e9d163e60a239db2 | |
parent | 765ccc7bc3d913e18b887a86de1e86db701a2d78 (diff) |
ntb_netdev: remove tx timeout
There is a race between disabling and enabling the tx queue, resulting
in tx timeouts. Since all the tx timeout does is re-enable the tx
queue, simple remove the start/stop of the queue and the tx timeout
routine.
Signed-off-by: Jon Mason <jon.mason@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | drivers/net/ntb_netdev.c | 11 |
1 files changed, 0 insertions, 11 deletions
diff --git a/drivers/net/ntb_netdev.c b/drivers/net/ntb_netdev.c index 28d6fea54384..07c06cdb97b4 100644 --- a/drivers/net/ntb_netdev.c +++ b/drivers/net/ntb_netdev.c | |||
@@ -144,9 +144,6 @@ static void ntb_netdev_tx_handler(struct ntb_transport_qp *qp, void *qp_data, | |||
144 | } | 144 | } |
145 | 145 | ||
146 | dev_kfree_skb(skb); | 146 | dev_kfree_skb(skb); |
147 | |||
148 | if (netif_queue_stopped(ndev)) | ||
149 | netif_wake_queue(ndev); | ||
150 | } | 147 | } |
151 | 148 | ||
152 | static netdev_tx_t ntb_netdev_start_xmit(struct sk_buff *skb, | 149 | static netdev_tx_t ntb_netdev_start_xmit(struct sk_buff *skb, |
@@ -166,7 +163,6 @@ static netdev_tx_t ntb_netdev_start_xmit(struct sk_buff *skb, | |||
166 | err: | 163 | err: |
167 | ndev->stats.tx_dropped++; | 164 | ndev->stats.tx_dropped++; |
168 | ndev->stats.tx_errors++; | 165 | ndev->stats.tx_errors++; |
169 | netif_stop_queue(ndev); | ||
170 | return NETDEV_TX_BUSY; | 166 | return NETDEV_TX_BUSY; |
171 | } | 167 | } |
172 | 168 | ||
@@ -270,18 +266,11 @@ err: | |||
270 | return rc; | 266 | return rc; |
271 | } | 267 | } |
272 | 268 | ||
273 | static void ntb_netdev_tx_timeout(struct net_device *ndev) | ||
274 | { | ||
275 | if (netif_running(ndev)) | ||
276 | netif_wake_queue(ndev); | ||
277 | } | ||
278 | |||
279 | static const struct net_device_ops ntb_netdev_ops = { | 269 | static const struct net_device_ops ntb_netdev_ops = { |
280 | .ndo_open = ntb_netdev_open, | 270 | .ndo_open = ntb_netdev_open, |
281 | .ndo_stop = ntb_netdev_close, | 271 | .ndo_stop = ntb_netdev_close, |
282 | .ndo_start_xmit = ntb_netdev_start_xmit, | 272 | .ndo_start_xmit = ntb_netdev_start_xmit, |
283 | .ndo_change_mtu = ntb_netdev_change_mtu, | 273 | .ndo_change_mtu = ntb_netdev_change_mtu, |
284 | .ndo_tx_timeout = ntb_netdev_tx_timeout, | ||
285 | .ndo_set_mac_address = eth_mac_addr, | 274 | .ndo_set_mac_address = eth_mac_addr, |
286 | }; | 275 | }; |
287 | 276 | ||