Remove the pointer to rte_eth_dev instance, as 1. there is already a pointer to rte_eth_dev_data. 2. a pointer to rte_eth_dev will break multi-process usage.
Signed-off-by: Qi Zhang <qi.z.zh...@intel.com> --- drivers/common/idpf/idpf_common_device.h | 1 - drivers/net/cpfl/cpfl_ethdev.c | 4 ++-- drivers/net/idpf/idpf_ethdev.c | 4 ++-- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/common/idpf/idpf_common_device.h b/drivers/common/idpf/idpf_common_device.h index 7a54f7c937..d29bcc71ab 100644 --- a/drivers/common/idpf/idpf_common_device.h +++ b/drivers/common/idpf/idpf_common_device.h @@ -117,7 +117,6 @@ struct idpf_vport { struct virtchnl2_vport_stats eth_stats_offset; - void *dev; /* Event from ipf */ bool link_up; uint32_t link_speed; diff --git a/drivers/net/cpfl/cpfl_ethdev.c b/drivers/net/cpfl/cpfl_ethdev.c index f1d4425ce2..680c2326ec 100644 --- a/drivers/net/cpfl/cpfl_ethdev.c +++ b/drivers/net/cpfl/cpfl_ethdev.c @@ -1061,7 +1061,8 @@ static void cpfl_handle_event_msg(struct idpf_vport *vport, uint8_t *msg, uint16_t msglen) { struct virtchnl2_event *vc_event = (struct virtchnl2_event *)msg; - struct rte_eth_dev *dev = (struct rte_eth_dev *)vport->dev; + struct rte_eth_dev_data *data = vport->dev_data; + struct rte_eth_dev *dev = &rte_eth_devices[data->port_id]; if (msglen < sizeof(struct virtchnl2_event)) { PMD_DRV_LOG(ERR, "Error event"); @@ -1245,7 +1246,6 @@ cpfl_dev_vport_init(struct rte_eth_dev *dev, void *init_params) vport->adapter = &adapter->base; vport->sw_idx = param->idx; vport->devarg_id = param->devarg_id; - vport->dev = dev; memset(&create_vport_info, 0, sizeof(create_vport_info)); ret = idpf_vport_info_init(vport, &create_vport_info); diff --git a/drivers/net/idpf/idpf_ethdev.c b/drivers/net/idpf/idpf_ethdev.c index e01eb3a2ec..38ad4e7ac0 100644 --- a/drivers/net/idpf/idpf_ethdev.c +++ b/drivers/net/idpf/idpf_ethdev.c @@ -1024,7 +1024,8 @@ static void idpf_handle_event_msg(struct idpf_vport *vport, uint8_t *msg, uint16_t msglen) { struct virtchnl2_event *vc_event = (struct virtchnl2_event *)msg; - struct rte_eth_dev *dev = (struct rte_eth_dev *)vport->dev; + struct rte_eth_dev_data *data = vport->dev_data; + struct rte_eth_dev *dev = &rte_eth_devices[data->port_id]; if (msglen < sizeof(struct virtchnl2_event)) { PMD_DRV_LOG(ERR, "Error event"); @@ -1235,7 +1236,6 @@ idpf_dev_vport_init(struct rte_eth_dev *dev, void *init_params) vport->adapter = &adapter->base; vport->sw_idx = param->idx; vport->devarg_id = param->devarg_id; - vport->dev = dev; memset(&create_vport_info, 0, sizeof(create_vport_info)); ret = idpf_vport_info_init(vport, &create_vport_info); -- 2.31.1