Commit f79c957a authored by Florian Westphal's avatar Florian Westphal Committed by David S. Miller

drivers: net: sfc: use netdev_xmit_more helper

skb->xmit_more hint is now always 0, this switches the sfc driver to
use the netdev_xmit_more helper instead.

Cc: Solarflare linux maintainers <linux-net-drivers@solarflare.com>
Cc: Edward Cree <ecree@solarflare.com>
Cc: Bert Kenward <bkenward@solarflare.com>
Signed-off-by: default avatarFlorian Westphal <fw@strlen.de>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 3c31ff22
...@@ -321,7 +321,7 @@ netdev_tx_t ef4_enqueue_skb(struct ef4_tx_queue *tx_queue, struct sk_buff *skb) ...@@ -321,7 +321,7 @@ netdev_tx_t ef4_enqueue_skb(struct ef4_tx_queue *tx_queue, struct sk_buff *skb)
netdev_tx_sent_queue(tx_queue->core_txq, skb_len); netdev_tx_sent_queue(tx_queue->core_txq, skb_len);
/* Pass off to hardware */ /* Pass off to hardware */
if (!skb->xmit_more || netif_xmit_stopped(tx_queue->core_txq)) { if (!netdev_xmit_more() || netif_xmit_stopped(tx_queue->core_txq)) {
struct ef4_tx_queue *txq2 = ef4_tx_queue_partner(tx_queue); struct ef4_tx_queue *txq2 = ef4_tx_queue_partner(tx_queue);
/* There could be packets left on the partner queue if those /* There could be packets left on the partner queue if those
...@@ -333,7 +333,7 @@ netdev_tx_t ef4_enqueue_skb(struct ef4_tx_queue *tx_queue, struct sk_buff *skb) ...@@ -333,7 +333,7 @@ netdev_tx_t ef4_enqueue_skb(struct ef4_tx_queue *tx_queue, struct sk_buff *skb)
ef4_nic_push_buffers(tx_queue); ef4_nic_push_buffers(tx_queue);
} else { } else {
tx_queue->xmit_more_available = skb->xmit_more; tx_queue->xmit_more_available = netdev_xmit_more();
} }
tx_queue->tx_packets++; tx_queue->tx_packets++;
......
...@@ -478,8 +478,6 @@ static int efx_tx_tso_fallback(struct efx_tx_queue *tx_queue, ...@@ -478,8 +478,6 @@ static int efx_tx_tso_fallback(struct efx_tx_queue *tx_queue,
next = skb->next; next = skb->next;
skb->next = NULL; skb->next = NULL;
if (next)
skb->xmit_more = true;
efx_enqueue_skb(tx_queue, skb); efx_enqueue_skb(tx_queue, skb);
skb = next; skb = next;
} }
...@@ -506,7 +504,7 @@ static int efx_tx_tso_fallback(struct efx_tx_queue *tx_queue, ...@@ -506,7 +504,7 @@ static int efx_tx_tso_fallback(struct efx_tx_queue *tx_queue,
netdev_tx_t efx_enqueue_skb(struct efx_tx_queue *tx_queue, struct sk_buff *skb) netdev_tx_t efx_enqueue_skb(struct efx_tx_queue *tx_queue, struct sk_buff *skb)
{ {
unsigned int old_insert_count = tx_queue->insert_count; unsigned int old_insert_count = tx_queue->insert_count;
bool xmit_more = skb->xmit_more; bool xmit_more = netdev_xmit_more();
bool data_mapped = false; bool data_mapped = false;
unsigned int segments; unsigned int segments;
unsigned int skb_len; unsigned int skb_len;
...@@ -533,7 +531,7 @@ netdev_tx_t efx_enqueue_skb(struct efx_tx_queue *tx_queue, struct sk_buff *skb) ...@@ -533,7 +531,7 @@ netdev_tx_t efx_enqueue_skb(struct efx_tx_queue *tx_queue, struct sk_buff *skb)
if (rc) if (rc)
goto err; goto err;
#ifdef EFX_USE_PIO #ifdef EFX_USE_PIO
} else if (skb_len <= efx_piobuf_size && !skb->xmit_more && } else if (skb_len <= efx_piobuf_size && !xmit_more &&
efx_nic_may_tx_pio(tx_queue)) { efx_nic_may_tx_pio(tx_queue)) {
/* Use PIO for short packets with an empty queue. */ /* Use PIO for short packets with an empty queue. */
if (efx_enqueue_skb_pio(tx_queue, skb)) if (efx_enqueue_skb_pio(tx_queue, skb))
...@@ -559,8 +557,8 @@ netdev_tx_t efx_enqueue_skb(struct efx_tx_queue *tx_queue, struct sk_buff *skb) ...@@ -559,8 +557,8 @@ netdev_tx_t efx_enqueue_skb(struct efx_tx_queue *tx_queue, struct sk_buff *skb)
if (__netdev_tx_sent_queue(tx_queue->core_txq, skb_len, xmit_more)) { if (__netdev_tx_sent_queue(tx_queue->core_txq, skb_len, xmit_more)) {
struct efx_tx_queue *txq2 = efx_tx_queue_partner(tx_queue); struct efx_tx_queue *txq2 = efx_tx_queue_partner(tx_queue);
/* There could be packets left on the partner queue if those /* There could be packets left on the partner queue if
* SKBs had skb->xmit_more set. If we do not push those they * xmit_more was set. If we do not push those they
* could be left for a long time and cause a netdev watchdog. * could be left for a long time and cause a netdev watchdog.
*/ */
if (txq2->xmit_more_available) if (txq2->xmit_more_available)
...@@ -568,7 +566,7 @@ netdev_tx_t efx_enqueue_skb(struct efx_tx_queue *tx_queue, struct sk_buff *skb) ...@@ -568,7 +566,7 @@ netdev_tx_t efx_enqueue_skb(struct efx_tx_queue *tx_queue, struct sk_buff *skb)
efx_nic_push_buffers(tx_queue); efx_nic_push_buffers(tx_queue);
} else { } else {
tx_queue->xmit_more_available = skb->xmit_more; tx_queue->xmit_more_available = xmit_more;
} }
if (segments) { if (segments) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment