Acked-by: Vladimir Medvedkin <vladimir.medved...@intel.com>
On 10/03/2025 13:11, Bruce Richardson wrote:
When registering interrupts, there was no check if the registration of
the interrupt succeeded. Add in such a check, and go to fallback path
if the check fails. This prevents errors on FreeBSD due to missed
admin queue messages.
Fixes: cd3b124955d4 ("net/iavf: enable interrupt polling")
Cc: sta...@dpdk.org
Signed-off-by: Bruce Richardson <bruce.richard...@intel.com>
---
drivers/net/intel/iavf/iavf_ethdev.c | 12 +++++-------
1 file changed, 5 insertions(+), 7 deletions(-)
diff --git a/drivers/net/intel/iavf/iavf_ethdev.c
b/drivers/net/intel/iavf/iavf_ethdev.c
index 9cd2b0c867..1ab84b0bfc 100644
--- a/drivers/net/intel/iavf/iavf_ethdev.c
+++ b/drivers/net/intel/iavf/iavf_ethdev.c
@@ -2825,18 +2825,16 @@ iavf_dev_init(struct rte_eth_dev *eth_dev)
ð_dev->data->mac_addrs[0]);
- if (vf->vf_res->vf_cap_flags & VIRTCHNL_VF_OFFLOAD_WB_ON_ITR) {
- /* register callback func to eal lib */
- rte_intr_callback_register(pci_dev->intr_handle,
- iavf_dev_interrupt_handler,
- (void *)eth_dev);
+ if (vf->vf_res->vf_cap_flags & VIRTCHNL_VF_OFFLOAD_WB_ON_ITR &&
+ /* register callback func to eal lib */
+ rte_intr_callback_register(pci_dev->intr_handle,
+ iavf_dev_interrupt_handler, (void *)eth_dev)
== 0)
/* enable uio intr after callback register */
rte_intr_enable(pci_dev->intr_handle);
- } else {
+ else
rte_eal_alarm_set(IAVF_ALARM_INTERVAL,
iavf_dev_alarm_handler, eth_dev);
- }
/* configure and enable device interrupt */
iavf_enable_irq0(hw);
--
Regards,
Vladimir