for (i = 0; i < adapter->num_tx_queues; i++)
                clear_bit(__IXGBE_HANG_CHECK_ARMED,
                          &adapter->tx_ring[i]->state);
-
-       for (i = 0; i < adapter->num_xdp_queues; i++)
-               clear_bit(__IXGBE_HANG_CHECK_ARMED,
-                         &adapter->xdp_ring[i]->state);
 }
 
 static void ixgbe_update_xoff_received(struct ixgbe_adapter *adapter)
        struct ixgbe_adapter *adapter = netdev_priv(tx_ring->netdev);
        struct ixgbe_hw *hw = &adapter->hw;
 
-       e_err(drv, "Detected Tx Unit Hang%s\n"
+       e_err(drv, "Detected Tx Unit Hang\n"
                   "  Tx Queue             <%d>\n"
                   "  TDH, TDT             <%x>, <%x>\n"
                   "  next_to_use          <%x>\n"
                   "tx_buffer_info[next_to_clean]\n"
                   "  time_stamp           <%lx>\n"
                   "  jiffies              <%lx>\n",
-             ring_is_xdp(tx_ring) ? " (XDP)" : "",
              tx_ring->queue_index,
              IXGBE_READ_REG(hw, IXGBE_TDH(tx_ring->reg_idx)),
              IXGBE_READ_REG(hw, IXGBE_TDT(tx_ring->reg_idx)),
              tx_ring->next_to_use, next,
              tx_ring->tx_buffer_info[next].time_stamp, jiffies);
 
-       if (!ring_is_xdp(tx_ring))
-               netif_stop_subqueue(tx_ring->netdev,
-                                   tx_ring->queue_index);
+       netif_stop_subqueue(tx_ring->netdev,
+                           tx_ring->queue_index);
 }
 
 /**
                                   total_bytes);
        adapter->tx_ipsec += total_ipsec;
 
+       if (ring_is_xdp(tx_ring))
+               return !!budget;
+
        if (check_for_tx_hang(tx_ring) && ixgbe_check_tx_hang(tx_ring)) {
                if (adapter->hw.mac.type == ixgbe_mac_e610)
                        ixgbe_handle_mdd_event(adapter, tx_ring);
                return true;
        }
 
-       if (ring_is_xdp(tx_ring))
-               return !!budget;
-
 #define TX_WAKE_THRESHOLD (DESC_NEEDED * 2)
        txq = netdev_get_tx_queue(tx_ring->netdev, tx_ring->queue_index);
        if (!__netif_txq_completed_wake(txq, total_packets, total_bytes,
                return;
 
        /* Force detection of hung controller */
-       if (netif_carrier_ok(adapter->netdev)) {
+       if (netif_carrier_ok(adapter->netdev))
                for (i = 0; i < adapter->num_tx_queues; i++)
                        set_check_for_tx_hang(adapter->tx_ring[i]);
-               for (i = 0; i < adapter->num_xdp_queues; i++)
-                       set_check_for_tx_hang(adapter->xdp_ring[i]);
-       }
 
        if (!(adapter->flags & IXGBE_FLAG_MSIX_ENABLED)) {
                /*
                        return true;
        }
 
-       for (i = 0; i < adapter->num_xdp_queues; i++) {
-               struct ixgbe_ring *ring = adapter->xdp_ring[i];
-
-               if (ring->next_to_use != ring->next_to_clean)
-                       return true;
-       }
-
        return false;
 }
 
        if (unlikely(test_bit(__IXGBE_DOWN, &adapter->state)))
                return -ENETDOWN;
 
+       if (!netif_carrier_ok(adapter->netdev) ||
+           !netif_running(adapter->netdev))
+               return -ENETDOWN;
+
        if (unlikely(flags & ~XDP_XMIT_FLAGS_MASK))
                return -EINVAL;