> -----Original Message----- > From: Pei, Andy <andy....@intel.com> > Sent: Tuesday, October 18, 2022 8:08 PM > To: dev@dpdk.org > Cc: Xia, Chenbo <chenbo....@intel.com>; Xu, Rosen <rosen...@intel.com>; > Huang, Wei <wei.hu...@intel.com>; Cao, Gang <gang....@intel.com>; > maxime.coque...@redhat.com > Subject: [PATCH v8 08/12] vdpa/ifc: add internal API to get device > > Add new internal API "find_internal_resource_by_rte_dev" > to get device. > > Signed-off-by: Andy Pei <andy....@intel.com> > --- > drivers/vdpa/ifc/ifcvf_vdpa.c | 28 ++++++++++++++++++++++++++-- > 1 file changed, 26 insertions(+), 2 deletions(-) > > diff --git a/drivers/vdpa/ifc/ifcvf_vdpa.c b/drivers/vdpa/ifc/ifcvf_vdpa.c > index 73d04ed..c16e263 100644 > --- a/drivers/vdpa/ifc/ifcvf_vdpa.c > +++ b/drivers/vdpa/ifc/ifcvf_vdpa.c > @@ -144,6 +144,29 @@ struct rte_vdpa_dev_info { > return list; > } > > +static struct internal_list * > +find_internal_resource_by_rte_dev(struct rte_device *rte_dev) > +{ > + int found = 0; > + struct internal_list *list; > + > + pthread_mutex_lock(&internal_list_lock); > + > + TAILQ_FOREACH(list, &internal_list, next) { > + if (rte_dev == &list->internal->pdev->device) { > + found = 1; > + break; > + } > + } > + > + pthread_mutex_unlock(&internal_list_lock); > + > + if (!found) > + return NULL; > + > + return list; > +} > + > static int > ifcvf_vfio_setup(struct ifcvf_internal *internal) > { > @@ -1398,10 +1421,11 @@ struct rte_vdpa_dev_info { > { > struct ifcvf_internal *internal; > struct internal_list *list; > + struct rte_device *rte_dev = vdev->device; > > - list = find_internal_resource_by_vdev(vdev); > + list = find_internal_resource_by_rte_dev(rte_dev); > if (list == NULL) { > - DRV_LOG(ERR, "Invalid vDPA device: %p", vdev); > + DRV_LOG(ERR, "Invalid rte device: %p", rte_dev); > return -1; > } > > -- > 1.8.3.1
Reviewed-by: Chenbo Xia <chenbo....@intel.com>