This reverts commit fdb840367cf0d6abeb17b05623679b8d1ea4c902

The Tech Board has decided that the co-existence of fast mbuf release and
multi segments is unclear, and new restrictions should not be imposed
until this has been clarified.

Fixes: fdb840367cf0 ("ethdev: reject conflicting Tx offload configurations")

Signed-off-by: Morten Brørup <[email protected]>
---
 lib/ethdev/rte_ethdev.c | 37 -------------------------------------
 1 file changed, 37 deletions(-)

diff --git a/lib/ethdev/rte_ethdev.c b/lib/ethdev/rte_ethdev.c
index f22139cb38..32686d99a9 100644
--- a/lib/ethdev/rte_ethdev.c
+++ b/lib/ethdev/rte_ethdev.c
@@ -1534,18 +1534,6 @@ rte_eth_dev_configure(uint16_t port_id, uint16_t 
nb_rx_q, uint16_t nb_tx_q,
                goto rollback;
        }
 
-       /* MBUF_FAST_FREE preconditions conflict with MULTI_SEGS support. */
-       if ((dev_conf->txmode.offloads & RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE) &&
-           (dev_conf->txmode.offloads & RTE_ETH_TX_OFFLOAD_MULTI_SEGS)) {
-               RTE_ETHDEV_LOG_LINE(ERR,
-                       "id=%d offload clash, %s vs %s",
-                       port_id,
-                       
rte_eth_dev_tx_offload_name(RTE_ETH_TX_OFFLOAD_MULTI_SEGS),
-                       
rte_eth_dev_tx_offload_name(RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE));
-               ret = -EINVAL;
-               goto rollback;
-       }
-
        dev->data->dev_conf.rx_adv_conf.rss_conf.rss_hf =
                rte_eth_rss_hf_refine(dev_conf->rx_adv_conf.rss_conf.rss_hf);
 
@@ -2724,31 +2712,6 @@ rte_eth_tx_queue_setup(uint16_t port_id, uint16_t 
tx_queue_id,
                return -EINVAL;
        }
 
-       /*
-        * If the driver uses a Tx function with MBUF_FAST_FREE preconditions,
-        * per-queue MULTI_SEGS support is not possible.
-        */
-       if ((dev->data->dev_conf.txmode.offloads & 
RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE) &&
-                       (local_conf.offloads & RTE_ETH_TX_OFFLOAD_MULTI_SEGS)) {
-               RTE_ETHDEV_LOG_LINE(ERR,
-                       "id=%d txq=%d offload clash, per-queue %s vs per-port 
%s",
-                       port_id, tx_queue_id,
-                       
rte_eth_dev_tx_offload_name(RTE_ETH_TX_OFFLOAD_MULTI_SEGS),
-                       
rte_eth_dev_tx_offload_name(RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE));
-               return -EINVAL;
-       }
-       /*
-        * If the driver uses a Tx function with MULTI_SEGS support,
-        * runtime support for per-queue MBUF_FAST_FREE optimization depends on 
the driver.
-        */
-       if ((dev->data->dev_conf.txmode.offloads & 
RTE_ETH_TX_OFFLOAD_MULTI_SEGS) &&
-                       (local_conf.offloads & 
RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE))
-               RTE_ETHDEV_LOG_LINE(DEBUG,
-                       "id=%d txq=%d potential offload clash, per-queue %s vs 
per-port %s: PMD to decide",
-                       port_id, tx_queue_id,
-                       
rte_eth_dev_tx_offload_name(RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE),
-                       
rte_eth_dev_tx_offload_name(RTE_ETH_TX_OFFLOAD_MULTI_SEGS));
-
        rte_ethdev_trace_txq_setup(port_id, tx_queue_id, nb_tx_desc, tx_conf);
        return eth_err(port_id, dev->dev_ops->tx_queue_setup(dev,
                       tx_queue_id, nb_tx_desc, socket_id, &local_conf));
-- 
2.43.0

Reply via email to