netdev_tx_sent_queue(tx_queue->core_txq, skb_len);
 
        /* 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);
 
                /* There could be packets left on the partner queue if those
 
                ef4_nic_push_buffers(tx_queue);
        } else {
-               tx_queue->xmit_more_available = skb->xmit_more;
+               tx_queue->xmit_more_available = netdev_xmit_more();
        }
 
        tx_queue->tx_packets++;
 
                next = skb->next;
                skb->next = NULL;
 
-               if (next)
-                       skb->xmit_more = true;
                efx_enqueue_skb(tx_queue, skb);
                skb = next;
        }
 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;
-       bool xmit_more = skb->xmit_more;
+       bool xmit_more = netdev_xmit_more();
        bool data_mapped = false;
        unsigned int segments;
        unsigned int skb_len;
                if (rc)
                        goto err;
 #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)) {
                /* Use PIO for short packets with an empty queue. */
                if (efx_enqueue_skb_pio(tx_queue, skb))
        if (__netdev_tx_sent_queue(tx_queue->core_txq, skb_len, xmit_more)) {
                struct efx_tx_queue *txq2 = efx_tx_queue_partner(tx_queue);
 
-               /* There could be packets left on the partner queue if those
-                * SKBs had skb->xmit_more set. If we do not push those they
+               /* There could be packets left on the partner queue if
+                * xmit_more was set. If we do not push those they
                 * could be left for a long time and cause a netdev watchdog.
                 */
                if (txq2->xmit_more_available)
 
                efx_nic_push_buffers(tx_queue);
        } else {
-               tx_queue->xmit_more_available = skb->xmit_more;
+               tx_queue->xmit_more_available = xmit_more;
        }
 
        if (segments) {