Applications may use rte_eth_rx_queue_count() in the RX stage of the
dataplane, so only check the function parameters if built with
RTE_ETHDEV_DEBUG_RX.

Signed-off-by: Morten Brørup <m...@smartsharesystems.com>
---
 lib/ethdev/rte_ethdev.h | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/lib/ethdev/rte_ethdev.h b/lib/ethdev/rte_ethdev.h
index de9e970d4d..8d5d9b42bf 100644
--- a/lib/ethdev/rte_ethdev.h
+++ b/lib/ethdev/rte_ethdev.h
@@ -5681,6 +5681,10 @@ rte_eth_rx_burst(uint16_t port_id, uint16_t queue_id,
 /**
  * Get the number of used descriptors of a Rx queue
  *
+ * Since it's a dataplane function, no check is performed on port_id and
+ * queue_id. The caller must therefore ensure that the port is enabled
+ * and the queue is configured and running.
+ *
  * @param port_id
  *  The port identifier of the Ethernet device.
  * @param queue_id
@@ -5688,8 +5692,8 @@ rte_eth_rx_burst(uint16_t port_id, uint16_t queue_id,
  * @return
  *  The number of used descriptors in the specific queue, or:
  *   - (-ENODEV) if *port_id* is invalid.
- *     (-EINVAL) if *queue_id* is invalid
- *     (-ENOTSUP) if the device does not support this function
+ *   - (-EINVAL) if *queue_id* is invalid
+ *   - (-ENOTSUP) if the device does not support this function
  */
 static inline int
 rte_eth_rx_queue_count(uint16_t port_id, uint16_t queue_id)
@@ -5697,6 +5701,7 @@ rte_eth_rx_queue_count(uint16_t port_id, uint16_t 
queue_id)
        struct rte_eth_fp_ops *p;
        void *qd;
 
+#ifdef RTE_ETHDEV_DEBUG_RX
        if (port_id >= RTE_MAX_ETHPORTS ||
                        queue_id >= RTE_MAX_QUEUES_PER_PORT) {
                RTE_ETHDEV_LOG(ERR,
@@ -5704,16 +5709,19 @@ rte_eth_rx_queue_count(uint16_t port_id, uint16_t 
queue_id)
                        port_id, queue_id);
                return -EINVAL;
        }
+#endif
 
        /* fetch pointer to queue data */
        p = &rte_eth_fp_ops[port_id];
        qd = p->rxq.data[queue_id];
 
+#ifdef RTE_ETHDEV_DEBUG_RX
        RTE_ETH_VALID_PORTID_OR_ERR_RET(port_id, -ENODEV);
-       RTE_FUNC_PTR_OR_ERR_RET(*p->rx_queue_count, -ENOTSUP);
        if (qd == NULL)
                return -EINVAL;
+#endif
 
+       RTE_FUNC_PTR_OR_ERR_RET(*p->rx_queue_count, -ENOTSUP);
        return (int)(*p->rx_queue_count)(qd);
 }
 
-- 
2.17.1

Reply via email to