drivers/net: fix removing jumbo offload flag
[dpdk.git] / drivers / net / i40e / i40e_rxtx.c
index ab77ec0..fd066e8 100644 (file)
@@ -2121,14 +2121,14 @@ i40e_rx_queue_release(void *rxq)
 }
 
 uint32_t
-i40e_dev_rx_queue_count(struct rte_eth_dev *dev, uint16_t rx_queue_id)
+i40e_dev_rx_queue_count(void *rx_queue)
 {
 #define I40E_RXQ_SCAN_INTERVAL 4
        volatile union i40e_rx_desc *rxdp;
        struct i40e_rx_queue *rxq;
        uint16_t desc = 0;
 
-       rxq = dev->data->rx_queues[rx_queue_id];
+       rxq = rx_queue;
        rxdp = &(rxq->rx_ring[rxq->rx_tail]);
        while ((desc < rxq->nb_rx_desc) &&
                ((rte_le_to_cpu_64(rxdp->wb.qword1.status_error_len) &
@@ -2899,28 +2899,15 @@ i40e_rx_queue_config(struct i40e_rx_queue *rxq)
        }
 
        rxq->max_pkt_len =
-               RTE_MIN((uint32_t)(hw->func_caps.rx_buf_chain_len *
-                       rxq->rx_buf_len), data->dev_conf.rxmode.max_rx_pkt_len);
-       if (data->dev_conf.rxmode.offloads & DEV_RX_OFFLOAD_JUMBO_FRAME) {
-               if (rxq->max_pkt_len <= I40E_ETH_MAX_LEN ||
-                       rxq->max_pkt_len > I40E_FRAME_SIZE_MAX) {
-                       PMD_DRV_LOG(ERR, "maximum packet length must "
-                                   "be larger than %u and smaller than %u,"
-                                   "as jumbo frame is enabled",
-                                   (uint32_t)I40E_ETH_MAX_LEN,
-                                   (uint32_t)I40E_FRAME_SIZE_MAX);
-                       return I40E_ERR_CONFIG;
-               }
-       } else {
-               if (rxq->max_pkt_len < RTE_ETHER_MIN_LEN ||
-                       rxq->max_pkt_len > I40E_ETH_MAX_LEN) {
-                       PMD_DRV_LOG(ERR, "maximum packet length must be "
-                                   "larger than %u and smaller than %u, "
-                                   "as jumbo frame is disabled",
-                                   (uint32_t)RTE_ETHER_MIN_LEN,
-                                   (uint32_t)I40E_ETH_MAX_LEN);
-                       return I40E_ERR_CONFIG;
-               }
+               RTE_MIN(hw->func_caps.rx_buf_chain_len * rxq->rx_buf_len,
+                               data->mtu + I40E_ETH_OVERHEAD);
+       if (rxq->max_pkt_len < RTE_ETHER_MIN_LEN ||
+               rxq->max_pkt_len > I40E_FRAME_SIZE_MAX) {
+               PMD_DRV_LOG(ERR, "maximum packet length must be "
+                           "larger than %u and smaller than %u",
+                           (uint32_t)RTE_ETHER_MIN_LEN,
+                           (uint32_t)I40E_FRAME_SIZE_MAX);
+               return I40E_ERR_CONFIG;
        }
 
        return 0;