Feng Liu
2023-May-04 17:08 UTC
[PATCH] virtio-vdpa: Fix unchecked call to NULL set_vq_affinity
On 2023-05-04 a.m.9:50, Dragos Tatulea wrote:> External email: Use caution opening links or attachments > > > The referenced patch calls set_vq_affinity without checking if the op is > valid. This patch adds the check. > > Fixes: 3dad56823b53 ("virtio-vdpa: Support interrupt affinity spreading mechanism") > Reviewed-by: Gal Pressman <gal at nvidia.com> > Signed-off-by: Dragos Tatulea <dtatulea at nvidia.com> > --- > drivers/virtio/virtio_vdpa.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/virtio/virtio_vdpa.c b/drivers/virtio/virtio_vdpa.c > index eb6aee8c06b2..989e2d7184ce 100644 > --- a/drivers/virtio/virtio_vdpa.c > +++ b/drivers/virtio/virtio_vdpa.c > @@ -385,7 +385,9 @@ static int virtio_vdpa_find_vqs(struct virtio_device *vdev, unsigned int nvqs, > err = PTR_ERR(vqs[i]); > goto err_setup_vq; > } > - ops->set_vq_affinity(vdpa, i, &masks[i]); > + > + if (ops->set_vq_affinity) > + ops->set_vq_affinity(vdpa, i, &masks[i]);if ops->set_vq_affinity is NULL, should give an error code to err, and return err> } > > cb.callback = virtio_vdpa_config_cb; > -- > 2.40.1 >
Dragos Tatulea
2023-May-04 17:19 UTC
[PATCH] virtio-vdpa: Fix unchecked call to NULL set_vq_affinity
On Thu, 2023-05-04 at 13:08 -0400, Feng Liu wrote:> > > On 2023-05-04 a.m.9:50, Dragos Tatulea wrote: > > External email: Use caution opening links or attachments > > > > > > The referenced patch calls set_vq_affinity without checking if the op is > > valid. This patch adds the check. > > > > Fixes: 3dad56823b53 ("virtio-vdpa: Support interrupt affinity spreading > > mechanism") > > Reviewed-by: Gal Pressman <gal at nvidia.com> > > Signed-off-by: Dragos Tatulea <dtatulea at nvidia.com> > > --- > > ? drivers/virtio/virtio_vdpa.c | 4 +++- > > ? 1 file changed, 3 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/virtio/virtio_vdpa.c b/drivers/virtio/virtio_vdpa.c > > index eb6aee8c06b2..989e2d7184ce 100644 > > --- a/drivers/virtio/virtio_vdpa.c > > +++ b/drivers/virtio/virtio_vdpa.c > > @@ -385,7 +385,9 @@ static int virtio_vdpa_find_vqs(struct virtio_device > > *vdev, unsigned int nvqs, > > ???????????????????????? err = PTR_ERR(vqs[i]); > > ???????????????????????? goto err_setup_vq; > > ???????????????? } > > -?????????????? ops->set_vq_affinity(vdpa, i, &masks[i]); > > + > > +?????????????? if (ops->set_vq_affinity) > > +?????????????????????? ops->set_vq_affinity(vdpa, i, &masks[i]); > if ops->set_vq_affinity is NULL, should give an error code to err, and > return err >I don't think so: the set_vq_affinity is marked as optional.> > ???????? } > > > > ???????? cb.callback = virtio_vdpa_config_cb; > > -- > > 2.40.1 > >
Michael S. Tsirkin
2023-May-04 18:51 UTC
[PATCH] virtio-vdpa: Fix unchecked call to NULL set_vq_affinity
On Thu, May 04, 2023 at 01:08:54PM -0400, Feng Liu wrote:> > > On 2023-05-04 a.m.9:50, Dragos Tatulea wrote: > > External email: Use caution opening links or attachments > > > > > > The referenced patch calls set_vq_affinity without checking if the op is > > valid. This patch adds the check. > > > > Fixes: 3dad56823b53 ("virtio-vdpa: Support interrupt affinity spreading mechanism") > > Reviewed-by: Gal Pressman <gal at nvidia.com> > > Signed-off-by: Dragos Tatulea <dtatulea at nvidia.com> > > --- > > drivers/virtio/virtio_vdpa.c | 4 +++- > > 1 file changed, 3 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/virtio/virtio_vdpa.c b/drivers/virtio/virtio_vdpa.c > > index eb6aee8c06b2..989e2d7184ce 100644 > > --- a/drivers/virtio/virtio_vdpa.c > > +++ b/drivers/virtio/virtio_vdpa.c > > @@ -385,7 +385,9 @@ static int virtio_vdpa_find_vqs(struct virtio_device *vdev, unsigned int nvqs, > > err = PTR_ERR(vqs[i]); > > goto err_setup_vq; > > } > > - ops->set_vq_affinity(vdpa, i, &masks[i]); > > + > > + if (ops->set_vq_affinity) > > + ops->set_vq_affinity(vdpa, i, &masks[i]); > if ops->set_vq_affinity is NULL, should give an error code to err, and > return errGiven we ignore return code, hardly seems like a critical thing to do. Is it really important? affinity is an optimization isn't it?> > } > > > > cb.callback = virtio_vdpa_config_cb; > > -- > > 2.40.1 > >
Apparently Analagous Threads
- [PATCH] virtio-vdpa: Fix unchecked call to NULL set_vq_affinity
- [PATCH] virtio-vdpa: Fix unchecked call to NULL set_vq_affinity
- [PATCH] virtio-vdpa: Fix unchecked call to NULL set_vq_affinity
- [PATCH] vdpa/mlx5: Fix crash on shutdown for when no ndev exists
- [PATCH] vdpa/mlx5: Fix crash on shutdown for when no ndev exists