When the fail-safe device is reconfigured, it attempts to register
again for the sub-devices LSC and RMV events.

Prevent an event registration if it is already done.

Fixes: 598fb8aec6f6 ("net/failsafe: support device removal")
Cc: sta...@dpdk.org

Signed-off-by: Matan Azrad <ma...@mellanox.com>
---
 drivers/net/failsafe/failsafe_ops.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/failsafe/failsafe_ops.c 
b/drivers/net/failsafe/failsafe_ops.c
index e0570b6..24e91c9 100644
--- a/drivers/net/failsafe/failsafe_ops.c
+++ b/drivers/net/failsafe/failsafe_ops.c
@@ -138,7 +138,7 @@
                        fs_unlock(dev, 0);
                        return ret;
                }
-               if (rmv_interrupt) {
+               if (rmv_interrupt && sdev->rmv_callback == 0) {
                        ret = rte_eth_dev_callback_register(PORT_ID(sdev),
                                        RTE_ETH_EVENT_INTR_RMV,
                                        failsafe_eth_rmv_event_callback,
@@ -150,7 +150,7 @@
                                sdev->rmv_callback = 1;
                }
                dev->data->dev_conf.intr_conf.rmv = 0;
-               if (lsc_interrupt) {
+               if (lsc_interrupt && sdev->lsc_callback == 0) {
                        ret = rte_eth_dev_callback_register(PORT_ID(sdev),
                                                RTE_ETH_EVENT_INTR_LSC,
                                                failsafe_eth_lsc_event_callback,
-- 
1.9.5

Reply via email to