From: Radu Nicolau Date: Mon, 23 May 2022 12:04:36 +0000 (+0100) Subject: net/iavf: fix device stop X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=5933c656b972441718d65275c6bdbec24ee71f9e;p=dpdk.git 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 --- 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);