Return of error was removed to mitigate possible breakage of old
applications which are not converted to the new offload API yet.
However, old Rx offload API has no per queue controls and
Rx queue offloads are derived from the device Rx mode bitfields
exactly in the same way as it is done on configure. Device
level Rx offloads are removed from queue offloads, so Rx queue
offloads should be empty if old Rx offload API is used.

Fixes: d04dd6d4ed67 ("ethdev: new Rx/Tx offloads API")

Signed-off-by: Andrew Rybchenko <arybche...@solarflare.com>
---
 lib/librte_ethdev/rte_ethdev.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c
index 60577efcf..938ec5638 100644
--- a/lib/librte_ethdev/rte_ethdev.c
+++ b/lib/librte_ethdev/rte_ethdev.c
@@ -1580,6 +1580,7 @@ rte_eth_rx_queue_setup(uint16_t port_id, uint16_t 
rx_queue_id,
                                local_conf.offloads,
                                dev_info.rx_queue_offload_capa,
                                __func__);
+               return -EINVAL;
        }
 
        ret = (*dev->dev_ops->rx_queue_setup)(dev, rx_queue_id, nb_rx_desc,
-- 
2.17.0

Reply via email to