[dpdk-stable] [PATCH 18.11 2/4] net/bnxt: fix probe in FreeBSD
Somnath Kotur
somnath.kotur at broadcom.com
Wed Mar 18 06:55:11 CET 2020
From: Kalesh AP <kalesh-anakkur.purayil at broadcom.com>
In FreeBSD environment, nic_uio driver does not support interrupts
and rte_intr_callback_register() will fail to register interrupts
which in turn causes bnxt driver probe failure.
Fixed driver to ignore interrupt callback failures in FreeBSD.
Fixes: 6de4c538b393 ("net/bnxt: fix error handling in port start")
Fixes: 43f78b380f89 ("net/bnxt: retry IRQ callback deregistration")
Signed-off-by: Kalesh AP <kalesh-anakkur.purayil at broadcom.com>
Reviewed-by: Somnath Kotur <somnath.kotur at broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde at broadcom.com>
Reviewed-by: Santoshkumar Karanappa Rastapur <santosh.rastapur at broadcom.com>
Signed-off-by: Somnath Kotur <somnath.kotur at broadcom.com>
---
drivers/net/bnxt/bnxt_ethdev.c | 3 +++
drivers/net/bnxt/bnxt_irq.c | 7 +++++++
2 files changed, 10 insertions(+)
diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c
index 878b9f5..f222c79 100644
--- a/drivers/net/bnxt/bnxt_ethdev.c
+++ b/drivers/net/bnxt/bnxt_ethdev.c
@@ -342,8 +342,11 @@ static int bnxt_init_chip(struct bnxt *bp)
/* enable uio/vfio intr/eventfd mapping */
rc = rte_intr_enable(intr_handle);
+#ifndef RTE_EXEC_ENV_FREEBSD
+ /* In FreeBSD OS, nic_uio driver does not support interrupts */
if (rc)
goto err_free;
+#endif
rc = bnxt_get_hwrm_link_config(bp, &new);
if (rc) {
diff --git a/drivers/net/bnxt/bnxt_irq.c b/drivers/net/bnxt/bnxt_irq.c
index 57365d7..b5f30bb 100644
--- a/drivers/net/bnxt/bnxt_irq.c
+++ b/drivers/net/bnxt/bnxt_irq.c
@@ -152,6 +152,13 @@ int bnxt_request_int(struct bnxt *bp)
if (!rc)
irq->requested = 1;
}
+ #ifdef RTE_EXEC_ENV_FREEBSD
+ /**
+ * In FreeBSD OS, nic_uio does not support interrupts and
+ * interrupt register callback will fail.
+ */
+ rc = 0;
+ #endif
return rc;
}
--
1.8.3.1
More information about the stable
mailing list