The callback is registered in netdev initialization but isn't
unregistered in netdev destruct. Fix it.

Fixes: 988fd4639149 ("netdev-dpdk: add support for the RTE_ETH_EVENT_INTR_RESET 
event.")
Change-Id: I645170825523f5b0c83f5ad3af8ea4a61cb257de
Signed-off-by: Roi Dayan <r...@nvidia.com>
Acked-by: Eli Britstein <el...@nvidia.com>
---
 lib/netdev-dpdk.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
index 549887b31373..e6d9b58f914e 100644
--- a/lib/netdev-dpdk.c
+++ b/lib/netdev-dpdk.c
@@ -1762,6 +1762,10 @@ common_destruct(struct netdev_dpdk *dev)
 
 static void dpdk_rx_steer_unconfigure(struct netdev_dpdk *);
 
+static int
+dpdk_eth_event_callback(dpdk_port_t port_id, enum rte_eth_event_type type,
+                        void *param OVS_UNUSED, void *ret_param OVS_UNUSED);
+
 static void
 netdev_dpdk_destruct(struct netdev *netdev)
 {
@@ -1831,6 +1835,10 @@ netdev_dpdk_destruct(struct netdev *netdev)
         }
     }
 
+    rte_eth_dev_callback_unregister(RTE_ETH_ALL,
+                                    RTE_ETH_EVENT_INTR_RESET,
+                                    dpdk_eth_event_callback, NULL);
+
     netdev_dpdk_clear_xstats(dev);
     free(dev->devargs);
     common_destruct(dev);
-- 
2.21.0

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to