> -----Original Message-----
> From: Burakov, Anatoly
> Sent: Monday, April 23, 2018 5:55 PM
> To: Tan, Jianfeng; dev@dpdk.org
> Cc: tho...@monjalon.net
> Subject: Re: [dpdk-dev] [PATCH v4 3/5] bus/vdev: bus scan by multi-process
> channel
> 
> On 20-Apr-18 5:57 PM, Jianfeng Tan wrote:
> > To scan the vdevs in primary, we send request to primary process
> > to obtain the names for vdevs.
> >
> > Only the name is shared from the primary. In probe(), the device
> > driver is supposed to locate (or request more) the detail
> > information from the primary.
> >
> > Signed-off-by: Jianfeng Tan <jianfeng....@intel.com>
> > Reviewed-by: Qi Zhang <qi.z.zh...@intel.com>
> > ---
> 
> <...>
> 
> > +static int
> > +vdev_action(const struct rte_mp_msg *mp_msg, const void *peer)
> > +{
> > +   struct rte_vdev_device *dev;
> > +   struct rte_mp_msg mp_resp;
> > +   struct vdev_param *ou = (struct vdev_param *)&mp_resp.param;
> > +   const struct vdev_param *in = (const struct vdev_param *)mp_msg-
> >param;
> > +   const char *devname;
> > +   int num;
> > +
> > +   strcpy(mp_resp.name, "vdev");
> 
> This string is used in a lot of places, so... #define? also, i think
> action name is a bit too short. maybe make it more descriptive, like
> "bus_vdev" or something to that effect?
> 
> Also, i think Coverity will complain about not checking string length,
> so... strlcpy()?

Will do in next version.

> 
> > +   mp_resp.len_param = sizeof(*ou);
> > +   mp_resp.num_fds = 0;
> > +
> > +   switch (in->type) {
> > +   case VDEV_SCAN_REQ:
> > +           ou->type = VDEV_SCAN_ONE;
> > +           ou->num = 1;
> > +           num = 0;
> > +
> > +           rte_spinlock_lock(&vdev_device_list_lock);
> > +           TAILQ_FOREACH(dev, &vdev_device_list, next) {
> > +                   devname = rte_vdev_device_name(dev);
> > +                   if (strlen(devname) == 0)
> > +                           VDEV_LOG(INFO, "vdev with no name is not
> sent");
> 
> The comment says it's "not sent" but code doesn't seem to indicate that
> this will happen. Forgot "continue"?

Nice catch, will fix.

Thanks,
Jianfeng

> 
> > +                   VDEV_LOG(INFO, "send vdev, %s", devname);
> > +                   strlcpy(ou->name, devname,
> RTE_DEV_NAME_MAX_LEN);
> > +                   if (rte_mp_sendmsg(&mp_resp) < 0)
> > +                           VDEV_LOG(ERR, "send vdev, %s, failed, %s",
> > +                                    devname, strerror(rte_errno));
> > +                   num++;
> > +           }
> 
> Once all of that is addressed,
> 
> Reviewed-by: Anatoly Burakov <anatoly.bura...@intel.com>
> 
> --
> Thanks,
> Anatoly

Reply via email to