Re: [PATCH net] virtio_net: fix return value check in receive_mergeable()

2017-12-04 Thread Jason Wang



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()

2017-12-04 Thread Jason Wang



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()

2017-12-04 Thread wangyunjian


> -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()

2017-12-04 Thread wangyunjian


> -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()

2017-12-03 Thread Jason Wang



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


Re: [PATCH net] virtio_net: fix return value check in receive_mergeable()

2017-12-03 Thread Jason Wang



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()

2017-12-03 Thread wangyunjian
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




[PATCH net] virtio_net: fix return value check in receive_mergeable()

2017-12-03 Thread wangyunjian
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