Re: [PATCH net] virtio_net: fix return value check in receive_mergeable()
On 2017年12月04日 19:25, wangyunjian wrote: -Original Message- From: Jason Wang [mailto:jasow...@redhat.com] Sent: Monday, December 04, 2017 3:10 PM To: wangyunjian <wangyunj...@huawei.com>; linux- ker...@vger.kernel.org Cc: m...@redhat.com; caihe <ca...@huawei.com> Subject: Re: [PATCH net] virtio_net: fix return value check in receive_mergeable() On 2017年12月04日 14:02, wangyunjian wrote: From: Yunjian Wang <wangyunj...@huawei.com> The function virtqueue_get_buf_ctx() could return NULL, the return value 'buf' need to be checked with NULL, not value 'ctx'. Signed-off-by: Yunjian Wang <wangyunj...@huawei.com> --- drivers/net/virtio_net.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index 19a985e..559b215 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c @@ -756,7 +756,7 @@ static struct sk_buff *receive_mergeable(struct net_device *dev, int num_skb_frags; buf = virtqueue_get_buf_ctx(rq->vq, , ); - if (unlikely(!ctx)) { + if (unlikely(!buf)) { pr_debug("%s: rx error: %d buffers out of %d missing\n", dev->name, num_buf, virtio16_to_cpu(vi->vdev, Hi: The path looks good but I'm not sure this is a real fix since we add data and ctx simultaneously in virtqueue_add_inbuf_ctx(). Any bad result you see without this patch? Now no problem has been found yet, and I found it when reviewing the code. Thanks Then I think it's better to go net-next. Michael, any idea on this? Thanks Thanks
Re: [PATCH net] virtio_net: fix return value check in receive_mergeable()
On 2017年12月04日 19:25, wangyunjian wrote: -Original Message- From: Jason Wang [mailto:jasow...@redhat.com] Sent: Monday, December 04, 2017 3:10 PM To: wangyunjian ; linux- ker...@vger.kernel.org Cc: m...@redhat.com; caihe Subject: Re: [PATCH net] virtio_net: fix return value check in receive_mergeable() On 2017年12月04日 14:02, wangyunjian wrote: From: Yunjian Wang The function virtqueue_get_buf_ctx() could return NULL, the return value 'buf' need to be checked with NULL, not value 'ctx'. Signed-off-by: Yunjian Wang --- drivers/net/virtio_net.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index 19a985e..559b215 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c @@ -756,7 +756,7 @@ static struct sk_buff *receive_mergeable(struct net_device *dev, int num_skb_frags; buf = virtqueue_get_buf_ctx(rq->vq, , ); - if (unlikely(!ctx)) { + if (unlikely(!buf)) { pr_debug("%s: rx error: %d buffers out of %d missing\n", dev->name, num_buf, virtio16_to_cpu(vi->vdev, Hi: The path looks good but I'm not sure this is a real fix since we add data and ctx simultaneously in virtqueue_add_inbuf_ctx(). Any bad result you see without this patch? Now no problem has been found yet, and I found it when reviewing the code. Thanks Then I think it's better to go net-next. Michael, any idea on this? Thanks Thanks
RE: [PATCH net] virtio_net: fix return value check in receive_mergeable()
> -Original Message- > From: Jason Wang [mailto:jasow...@redhat.com] > Sent: Monday, December 04, 2017 3:10 PM > To: wangyunjian <wangyunj...@huawei.com>; linux- > ker...@vger.kernel.org > Cc: m...@redhat.com; caihe <ca...@huawei.com> > Subject: Re: [PATCH net] virtio_net: fix return value check in > receive_mergeable() > > > > On 2017年12月04日 14:02, wangyunjian wrote: > > From: Yunjian Wang <wangyunj...@huawei.com> > > > > The function virtqueue_get_buf_ctx() could return NULL, the return > > value 'buf' need to be checked with NULL, not value 'ctx'. > > > > Signed-off-by: Yunjian Wang <wangyunj...@huawei.com> > > --- > > drivers/net/virtio_net.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c > > index 19a985e..559b215 100644 > > --- a/drivers/net/virtio_net.c > > +++ b/drivers/net/virtio_net.c > > @@ -756,7 +756,7 @@ static struct sk_buff *receive_mergeable(struct > net_device *dev, > > int num_skb_frags; > > > > buf = virtqueue_get_buf_ctx(rq->vq, , ); > > - if (unlikely(!ctx)) { > > + if (unlikely(!buf)) { > > pr_debug("%s: rx error: %d buffers out of %d > missing\n", > > dev->name, num_buf, > > virtio16_to_cpu(vi->vdev, > > Hi: > > The path looks good but I'm not sure this is a real fix since we add > data and ctx simultaneously in virtqueue_add_inbuf_ctx(). > > Any bad result you see without this patch? > Now no problem has been found yet, and I found it when reviewing the code. Thanks > Thanks
RE: [PATCH net] virtio_net: fix return value check in receive_mergeable()
> -Original Message- > From: Jason Wang [mailto:jasow...@redhat.com] > Sent: Monday, December 04, 2017 3:10 PM > To: wangyunjian ; linux- > ker...@vger.kernel.org > Cc: m...@redhat.com; caihe > Subject: Re: [PATCH net] virtio_net: fix return value check in > receive_mergeable() > > > > On 2017年12月04日 14:02, wangyunjian wrote: > > From: Yunjian Wang > > > > The function virtqueue_get_buf_ctx() could return NULL, the return > > value 'buf' need to be checked with NULL, not value 'ctx'. > > > > Signed-off-by: Yunjian Wang > > --- > > drivers/net/virtio_net.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c > > index 19a985e..559b215 100644 > > --- a/drivers/net/virtio_net.c > > +++ b/drivers/net/virtio_net.c > > @@ -756,7 +756,7 @@ static struct sk_buff *receive_mergeable(struct > net_device *dev, > > int num_skb_frags; > > > > buf = virtqueue_get_buf_ctx(rq->vq, , ); > > - if (unlikely(!ctx)) { > > + if (unlikely(!buf)) { > > pr_debug("%s: rx error: %d buffers out of %d > missing\n", > > dev->name, num_buf, > > virtio16_to_cpu(vi->vdev, > > Hi: > > The path looks good but I'm not sure this is a real fix since we add > data and ctx simultaneously in virtqueue_add_inbuf_ctx(). > > Any bad result you see without this patch? > Now no problem has been found yet, and I found it when reviewing the code. Thanks > Thanks
Re: [PATCH net] virtio_net: fix return value check in receive_mergeable()
On 2017年12月04日 14:02, wangyunjian wrote: From: Yunjian WangThe function virtqueue_get_buf_ctx() could return NULL, the return value 'buf' need to be checked with NULL, not value 'ctx'. Signed-off-by: Yunjian Wang --- drivers/net/virtio_net.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index 19a985e..559b215 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c @@ -756,7 +756,7 @@ static struct sk_buff *receive_mergeable(struct net_device *dev, int num_skb_frags; buf = virtqueue_get_buf_ctx(rq->vq, , ); - if (unlikely(!ctx)) { + if (unlikely(!buf)) { pr_debug("%s: rx error: %d buffers out of %d missing\n", dev->name, num_buf, virtio16_to_cpu(vi->vdev, Hi: The path looks good but I'm not sure this is a real fix since we add data and ctx simultaneously in virtqueue_add_inbuf_ctx(). Any bad result you see without this patch? Thanks
Re: [PATCH net] virtio_net: fix return value check in receive_mergeable()
On 2017年12月04日 14:02, wangyunjian wrote: From: Yunjian Wang The function virtqueue_get_buf_ctx() could return NULL, the return value 'buf' need to be checked with NULL, not value 'ctx'. Signed-off-by: Yunjian Wang --- drivers/net/virtio_net.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index 19a985e..559b215 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c @@ -756,7 +756,7 @@ static struct sk_buff *receive_mergeable(struct net_device *dev, int num_skb_frags; buf = virtqueue_get_buf_ctx(rq->vq, , ); - if (unlikely(!ctx)) { + if (unlikely(!buf)) { pr_debug("%s: rx error: %d buffers out of %d missing\n", dev->name, num_buf, virtio16_to_cpu(vi->vdev, Hi: The path looks good but I'm not sure this is a real fix since we add data and ctx simultaneously in virtqueue_add_inbuf_ctx(). Any bad result you see without this patch? Thanks
[PATCH net] virtio_net: fix return value check in receive_mergeable()
From: Yunjian WangThe function virtqueue_get_buf_ctx() could return NULL, the return value 'buf' need to be checked with NULL, not value 'ctx'. Signed-off-by: Yunjian Wang --- drivers/net/virtio_net.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index 19a985e..559b215 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c @@ -756,7 +756,7 @@ static struct sk_buff *receive_mergeable(struct net_device *dev, int num_skb_frags; buf = virtqueue_get_buf_ctx(rq->vq, , ); - if (unlikely(!ctx)) { + if (unlikely(!buf)) { pr_debug("%s: rx error: %d buffers out of %d missing\n", dev->name, num_buf, virtio16_to_cpu(vi->vdev, -- 1.8.3.1
[PATCH net] virtio_net: fix return value check in receive_mergeable()
From: Yunjian Wang The function virtqueue_get_buf_ctx() could return NULL, the return value 'buf' need to be checked with NULL, not value 'ctx'. Signed-off-by: Yunjian Wang --- drivers/net/virtio_net.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index 19a985e..559b215 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c @@ -756,7 +756,7 @@ static struct sk_buff *receive_mergeable(struct net_device *dev, int num_skb_frags; buf = virtqueue_get_buf_ctx(rq->vq, , ); - if (unlikely(!ctx)) { + if (unlikely(!buf)) { pr_debug("%s: rx error: %d buffers out of %d missing\n", dev->name, num_buf, virtio16_to_cpu(vi->vdev, -- 1.8.3.1