Jason Wang
2021-Oct-15 08:24 UTC
[PATCH v5 5/8] vdpa: min vq num of vdpa device cannot be greater than max vq num
? 2021/10/15 ??3:14, Wu Zongyong ??:> Just failed to probe the vdpa device if the min virtqueue num returned > by get_vq_num_min is greater than the max virtqueue num returned by > get_vq_num_max. > > Signed-off-by: Wu Zongyong <wuzongyong at linux.alibaba.com> > --- > drivers/vdpa/vdpa.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/drivers/vdpa/vdpa.c b/drivers/vdpa/vdpa.c > index 1dc121a07a93..fd014ecec711 100644 > --- a/drivers/vdpa/vdpa.c > +++ b/drivers/vdpa/vdpa.c > @@ -26,8 +26,16 @@ static int vdpa_dev_probe(struct device *d) > { > struct vdpa_device *vdev = dev_to_vdpa(d); > struct vdpa_driver *drv = drv_to_vdpa(vdev->dev.driver); > + const struct vdpa_config_ops *ops = vdev->config; > + u32 max_num, min_num = 0;As discussed in previous version, 1 seems better? Thanks> int ret = 0; > > + max_num = ops->get_vq_num_max(vdev); > + if (ops->get_vq_num_min) > + min_num = ops->get_vq_num_min(vdev); > + if (max_num < min_num) > + return -EINVAL; > + > if (drv && drv->probe) > ret = drv->probe(vdev); >