> -----Original Message-----
> From: Maxime Coquelin [mailto:maxime.coque...@redhat.com]
> Sent: Tuesday, April 3, 2018 4:19 PM
> To: Wang, Zhihong <zhihong.w...@intel.com>; dev@dpdk.org
> Cc: Tan, Jianfeng <jianfeng....@intel.com>; Bie, Tiwei <tiwei....@intel.com>;
> y...@fridaylinux.org; Liang, Cunming <cunming.li...@intel.com>; Wang, Xiao
> W <xiao.w.w...@intel.com>; Daly, Dan <dan.d...@intel.com>
> Subject: Re: [PATCH v5 2/5] vhost: support selective datapath
> 
> 
> 
> On 04/02/2018 01:46 PM, Zhihong Wang wrote:
> > +int
> > +rte_vdpa_register_device(struct rte_vdpa_dev_addr *addr,
> > +           struct rte_vdpa_dev_ops *ops)
> > +{
> > +   struct rte_vdpa_device *dev;
> > +   char device_name[MAX_VDPA_NAME_LEN];
> > +   int i;
> > +
> > +   if (vdpa_device_num >= MAX_VHOST_DEVICE)
> > +           return -1;
> > +
> > +   for (i = 0; i < MAX_VHOST_DEVICE; i++) {
> > +           if (vdpa_devices[i] && is_same_vdpa_device(addr,
> > +                                   &vdpa_devices[i]->addr))
> > +                   return -1;
> > +   }
> 
> For consistency, I changed above check to look like same one in
> _find_device_id:

That's better. Thanks.

> 
>       for (i = 0; i < MAX_VHOST_DEVICE; i++) {
>               dev = vdpa_devices[i];
>               if (dev && is_same_vdpa_device(&dev->addr, addr))
>                       return -1;
>       }
> 
> > +
> > +   for (i = 0; i < MAX_VHOST_DEVICE; i++) {
> > +           if (vdpa_devices[i] == NULL)
> > +                   break;
> > +   }
> > +
> > +   sprintf(device_name, "vdpa-dev-%d", i);
> > +   dev = rte_zmalloc(device_name, sizeof(struct rte_vdpa_device),
> > +                   RTE_CACHE_LINE_SIZE);
> > +   if (!dev)
> > +           return -1;
> > +
> > +   memcpy(&dev->addr, addr, sizeof(struct rte_vdpa_dev_addr));
> > +   dev->ops = ops;
> > +   vdpa_devices[i] = dev;
> > +   vdpa_device_num++;
> > +
> > +   return i;
> > +}
> > +
> > +int
> > +rte_vdpa_unregister_device(int did)
> > +{
> > +   if (did < 0 || did >= MAX_VHOST_DEVICE || vdpa_devices[did] == NULL)
> > +           return -1;
> > +
> > +   rte_free(vdpa_devices[did]);
> > +   vdpa_devices[did] = NULL;
> > +   vdpa_device_num--;
> > +
> > +   return did;
> > +}
> > +
> > +int
> > +rte_vdpa_find_device_id(struct rte_vdpa_dev_addr *addr)
> > +{
> > +   struct rte_vdpa_device *dev;
> > +   int i;
> > +
> > +   for (i = 0; i < MAX_VHOST_DEVICE; ++i) {
> > +           dev = vdpa_devices[i];
> > +           if (dev && is_same_vdpa_device(&dev->addr, addr) == 0)
> > +                   return i;
> > +   }
> > +
> > +   return -1;
> > +}
> > +

Reply via email to