Not all devices support rxq interrupt yet.
It is better to check for interrupt support in driver at configuration
time than waiting for later failures.

Signed-off-by: Stephen Hemminger <stephen at networkplumber.org>
---
 lib/librte_ether/rte_ethdev.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/lib/librte_ether/rte_ethdev.c b/lib/librte_ether/rte_ethdev.c
index cb586ff..ad15837 100644
--- a/lib/librte_ether/rte_ethdev.c
+++ b/lib/librte_ether/rte_ethdev.c
@@ -1183,6 +1183,14 @@ rte_eth_dev_configure(uint8_t port_id, uint16_t nb_rx_q, 
uint16_t nb_tx_q,
        }

        /*
+        * If Receive Queue interrupt is enabled, check that
+        * the device supports interrupt control.
+        */
+       if (dev_conf->intr_conf.rxq == 1)
+               FUNC_PTR_OR_ERR_RET(*dev->dev_ops->rx_queue_intr_enable,
+                                   -EINVAL);
+
+       /*
         * If jumbo frames are enabled, check that the maximum RX packet
         * length is supported by the configured device.
         */
-- 
2.1.4

Reply via email to