From 5933c656b972441718d65275c6bdbec24ee71f9e Mon Sep 17 00:00:00 2001 From: Radu Nicolau Date: Mon, 23 May 2022 13:04:36 +0100 Subject: [PATCH] net/iavf: fix device stop Move security context destroy from device stop to device close function. Deleting the context on device stop can prevent the application from properly cleaning and releasing resources. Fixes: 6bc987ecb860 ("net/iavf: support IPsec inline crypto") Cc: stable@dpdk.org Signed-off-by: Radu Nicolau Acked-by: Qi Zhang --- drivers/net/iavf/iavf_ethdev.c | 6 +++--- drivers/net/iavf/iavf_ipsec_crypto.c | 2 -- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethdev.c index 7a3b37d5e3..e85ae0ed0e 100644 --- a/drivers/net/iavf/iavf_ethdev.c +++ b/drivers/net/iavf/iavf_ethdev.c @@ -1088,9 +1088,6 @@ iavf_dev_stop(struct rte_eth_dev *dev) iavf_add_del_mc_addr_list(adapter, vf->mc_addrs, vf->mc_addrs_num, false); - /* free iAVF security device context all related resources */ - iavf_security_ctx_destroy(adapter); - adapter->stopped = 1; dev->data->dev_started = 0; @@ -2713,6 +2710,9 @@ iavf_dev_close(struct rte_eth_dev *dev) ret = iavf_dev_stop(dev); adapter->closed = true; + /* free iAVF security device context all related resources */ + iavf_security_ctx_destroy(adapter); + iavf_flow_flush(dev, NULL); iavf_flow_uninit(adapter); diff --git a/drivers/net/iavf/iavf_ipsec_crypto.c b/drivers/net/iavf/iavf_ipsec_crypto.c index 72ce39a052..fa1cecc1e1 100644 --- a/drivers/net/iavf/iavf_ipsec_crypto.c +++ b/drivers/net/iavf/iavf_ipsec_crypto.c @@ -1551,8 +1551,6 @@ iavf_security_ctx_destroy(struct iavf_adapter *adapter) if (iavf_sctx == NULL) return -ENODEV; - /* TODO: Add resources cleanup */ - /* free and reset security data structures */ rte_free(iavf_sctx); rte_free(sctx); -- 2.39.5