The netlink socket for flow creation was left open and never
closed.

Fixes: bf7b7f437b49 ("net/tap: create netdevice during probing")
Cc: pascal.ma...@6wind.com
Cc: sta...@dpdk.org
Signed-off-by: Stephen Hemminger <step...@networkplumber.org>
---
 drivers/net/tap/rte_eth_tap.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/drivers/net/tap/rte_eth_tap.c b/drivers/net/tap/rte_eth_tap.c
index a13d8d50d7d7..d293dd8eeed5 100644
--- a/drivers/net/tap/rte_eth_tap.c
+++ b/drivers/net/tap/rte_eth_tap.c
@@ -1035,6 +1035,11 @@ tap_dev_close(struct rte_eth_dev *dev)
                                &internals->remote_initial_flags);
        }
 
+       if (internals->nlsk_fd != -1) {
+               close(internals->nlsk_fd);
+               internals->nlsk_fd = -1;
+       }
+
        if (internals->ka_fd != -1) {
                close(internals->ka_fd);
                internals->ka_fd = -1;
@@ -2406,7 +2411,7 @@ rte_pmd_tap_remove(struct rte_vdev_device *dev)
        TAP_LOG(DEBUG, "Closing %s Ethernet device on numa %u",
                tuntap_types[internals->type], rte_socket_id());
 
-       if (internals->nlsk_fd) {
+       if (internals->nlsk_fd != -1) {
                tap_flow_flush(eth_dev, NULL);
                tap_flow_implicit_flush(internals, NULL);
                tap_nl_final(internals->nlsk_fd);
-- 
2.20.1

Reply via email to