From: Beilei Xing <beilei.x...@intel.com> This patch stops device at the beginning of idpf_dev_close.
Fixes: 14aa6ed8f2ec ("net/idpf: support device start and stop") Signed-off-by: Beilei Xing <beilei.x...@intel.com> --- drivers/net/idpf/idpf_ethdev.c | 7 +++++++ drivers/net/idpf/idpf_ethdev.h | 2 ++ 2 files changed, 9 insertions(+) diff --git a/drivers/net/idpf/idpf_ethdev.c b/drivers/net/idpf/idpf_ethdev.c index 50aac65daf..5a141ba035 100644 --- a/drivers/net/idpf/idpf_ethdev.c +++ b/drivers/net/idpf/idpf_ethdev.c @@ -605,6 +605,9 @@ idpf_dev_stop(struct rte_eth_dev *dev) { struct idpf_vport *vport = dev->data->dev_private; + if (vport->stopped == 1) + return 0; + idpf_vc_ena_dis_vport(vport, false); idpf_stop_queues(dev); @@ -613,6 +616,8 @@ idpf_dev_stop(struct rte_eth_dev *dev) idpf_vc_dealloc_vectors(vport); + vport->stopped = 1; + return 0; } @@ -622,6 +627,8 @@ idpf_dev_close(struct rte_eth_dev *dev) struct idpf_vport *vport = dev->data->dev_private; struct idpf_adapter *adapter = vport->adapter; + idpf_dev_stop(dev); + idpf_vc_destroy_vport(vport); rte_free(vport->rss_lut); diff --git a/drivers/net/idpf/idpf_ethdev.h b/drivers/net/idpf/idpf_ethdev.h index ccdf4abe40..bfe27a5267 100644 --- a/drivers/net/idpf/idpf_ethdev.h +++ b/drivers/net/idpf/idpf_ethdev.h @@ -127,6 +127,8 @@ struct idpf_vport { struct idpf_chunks_info chunks_info; uint16_t devarg_id; + + bool stopped; }; struct idpf_adapter { -- 2.26.2