[PATCH v3] app/testpmd: fix quit testpmd with vfs and pf
    Ke Zhang 
    ke1x.zhang at intel.com
       
    Wed Jul 13 09:11:12 CEST 2022
    
    
  
A segmentation fault occurs when testpmd exit.
This is due to fetching the device name from PF
, PF is freed firstly and then VF representor
is called later.
This commit fixes the bug by fetching the device
name from vf representor not PF.
Fixes: e391a7b7f815 ("net/i40e: fix multi-process shared data")
Cc: stable at dpdk.org
Signed-off-by: Ke Zhang <ke1x.zhang at intel.com>
---
v3: Change the design and fix code in driver
v2: Change the testpmd code to fix this issue
---
---
 drivers/net/i40e/i40e_vf_representor.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/net/i40e/i40e_vf_representor.c b/drivers/net/i40e/i40e_vf_representor.c
index 7f8e81858e..bcd445bcdd 100644
--- a/drivers/net/i40e/i40e_vf_representor.c
+++ b/drivers/net/i40e/i40e_vf_representor.c
@@ -29,8 +29,6 @@ i40e_vf_representor_dev_infos_get(struct rte_eth_dev *ethdev,
 	struct rte_eth_dev_info *dev_info)
 {
 	struct i40e_vf_representor *representor = ethdev->data->dev_private;
-	struct rte_eth_dev_data *pf_dev_data =
-		representor->adapter->pf.dev_data;
 
 	/* get dev info for the vdev */
 	dev_info->device = ethdev->device;
@@ -104,7 +102,7 @@ i40e_vf_representor_dev_infos_get(struct rte_eth_dev *ethdev,
 	};
 
 	dev_info->switch_info.name =
-		rte_eth_devices[pf_dev_data->port_id].device->name;
+		rte_eth_devices[ethdev->data->port_id].device->name;
 	dev_info->switch_info.domain_id = representor->switch_domain_id;
 	dev_info->switch_info.port_id = representor->vf_id;
 
-- 
2.25.1
    
    
More information about the dev
mailing list