net/ixgbe: fix port close in FreeBSD
authorChenxu Di <chenxux.di@intel.com>
Fri, 1 Nov 2019 02:26:44 +0000 (02:26 +0000)
committerFerruh Yigit <ferruh.yigit@intel.com>
Fri, 8 Nov 2019 22:15:04 +0000 (23:15 +0100)
FreeBSD OS doesn't support igb_uio interrupt, so it will fail when
unregister the interrupt callback in port close. We can fix the issue by
passing -ENOENT when check the return value of unregister interrupt
callback function.

Fixes: f2f4990eff94 ("net/ixgbe: release port upon close")

Signed-off-by: Chenxu Di <chenxux.di@intel.com>
Acked-by: Xiaolong Ye <xiaolong.ye@intel.com>
drivers/net/ixgbe/ixgbe_ethdev.c

index 06414d1..9c386f5 100644 (file)
@@ -2986,7 +2986,7 @@ ixgbe_dev_close(struct rte_eth_dev *dev)
        do {
                ret = rte_intr_callback_unregister(intr_handle,
                                ixgbe_dev_interrupt_handler, dev);
-               if (ret >= 0) {
+               if (ret >= 0 || ret == -ENOENT) {
                        break;
                } else if (ret != -EAGAIN) {
                        PMD_INIT_LOG(ERR,