net/e1000: fix max Rx packet size
[dpdk.git] / drivers / net / ice / ice_rxtx_vec_common.h
index 46e3be9..c09ac7f 100644 (file)
@@ -189,16 +189,38 @@ _ice_tx_queue_release_mbufs_vec(struct ice_tx_queue *txq)
         *  so need to free remains more carefully.
         */
        i = txq->tx_next_dd - txq->tx_rs_thresh + 1;
-       if (txq->tx_tail < i) {
-               for (; i < txq->nb_tx_desc; i++) {
+
+#ifdef CC_AVX512_SUPPORT
+       struct rte_eth_dev *dev = txq->vsi->adapter->eth_dev;
+
+       if (dev->tx_pkt_burst == ice_xmit_pkts_vec_avx512) {
+               struct ice_vec_tx_entry *swr = (void *)txq->sw_ring;
+
+               if (txq->tx_tail < i) {
+                       for (; i < txq->nb_tx_desc; i++) {
+                               rte_pktmbuf_free_seg(swr[i].mbuf);
+                               swr[i].mbuf = NULL;
+                       }
+                       i = 0;
+               }
+               for (; i < txq->tx_tail; i++) {
+                       rte_pktmbuf_free_seg(swr[i].mbuf);
+                       swr[i].mbuf = NULL;
+               }
+       } else
+#endif
+       {
+               if (txq->tx_tail < i) {
+                       for (; i < txq->nb_tx_desc; i++) {
+                               rte_pktmbuf_free_seg(txq->sw_ring[i].mbuf);
+                               txq->sw_ring[i].mbuf = NULL;
+                       }
+                       i = 0;
+               }
+               for (; i < txq->tx_tail; i++) {
                        rte_pktmbuf_free_seg(txq->sw_ring[i].mbuf);
                        txq->sw_ring[i].mbuf = NULL;
                }
-               i = 0;
-       }
-       for (; i < txq->tx_tail; i++) {
-               rte_pktmbuf_free_seg(txq->sw_ring[i].mbuf);
-               txq->sw_ring[i].mbuf = NULL;
        }
 }
 
@@ -244,6 +266,7 @@ ice_rx_vec_queue_default(struct ice_rx_queue *rxq)
 #define ICE_NO_VECTOR_FLAGS (                           \
                DEV_TX_OFFLOAD_MULTI_SEGS |              \
                DEV_TX_OFFLOAD_VLAN_INSERT |             \
+               DEV_TX_OFFLOAD_IPV4_CKSUM |              \
                DEV_TX_OFFLOAD_SCTP_CKSUM |              \
                DEV_TX_OFFLOAD_UDP_CKSUM |               \
                DEV_TX_OFFLOAD_TCP_TSO |                 \
@@ -270,12 +293,6 @@ ice_rx_vec_dev_check_default(struct rte_eth_dev *dev)
 {
        int i;
        struct ice_rx_queue *rxq;
-       struct ice_adapter *ad =
-               ICE_DEV_PRIVATE_TO_ADAPTER(dev->data->dev_private);
-
-       /* vPMD does not support flow mark. */
-       if (ad->devargs.flow_mark_support)
-               return -1;
 
        for (i = 0; i < dev->data->nb_rx_queues; i++) {
                rxq = dev->data->rx_queues[i];