Re: [PATCH] virtio_net: fix mergeable bufs error handling

2017-03-30 Thread David Miller
From: "Michael S. Tsirkin" 
Date: Wed, 29 Mar 2017 15:37:37 +0300

> @@ -570,7 +570,7 @@ static struct sk_buff *receive_mergeable(struct 
> net_device *dev,
>   u16 num_buf;
>   struct page *page;
>   int offset;
> - struct sk_buff *head_skb, *curr_skb;
> + struct sk_buff *head_skb = NULL, *curr_skb;
>   struct bpf_prog *xdp_prog;
>   unsigned int truesize;
>  

Like Jason, I see the very next line is:

head_skb = NULL;

so I don't think this is necessary.


Re: [PATCH] virtio_net: fix mergeable bufs error handling

2017-03-29 Thread Jason Wang



On 2017年03月29日 20:37, Michael S. Tsirkin wrote:

On xdp error we try to free head_skb without having
initialized it, that's clearly bogus.

Fixes: f600b6905015 ("virtio_net: Add XDP support")
Cc: John Fastabend 
Signed-off-by: Michael S. Tsirkin 
---
  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 11773d6..e0fb3707 100644
--- a/drivers/net/virtio_net.c
+++ b/drivers/net/virtio_net.c
@@ -570,7 +570,7 @@ static struct sk_buff *receive_mergeable(struct net_device 
*dev,
u16 num_buf;
struct page *page;
int offset;
-   struct sk_buff *head_skb, *curr_skb;
+   struct sk_buff *head_skb = NULL, *curr_skb;
struct bpf_prog *xdp_prog;
unsigned int truesize;
  


My tree (net.git HEAD is 8f1f7eeb22c16a197159cf7b35d1350695193ead) has:

head_skb = NULL;

just after the above codes.

Thanks


[PATCH] virtio_net: fix mergeable bufs error handling

2017-03-29 Thread Michael S. Tsirkin
On xdp error we try to free head_skb without having
initialized it, that's clearly bogus.

Fixes: f600b6905015 ("virtio_net: Add XDP support")
Cc: John Fastabend 
Signed-off-by: Michael S. Tsirkin 
---
 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 11773d6..e0fb3707 100644
--- a/drivers/net/virtio_net.c
+++ b/drivers/net/virtio_net.c
@@ -570,7 +570,7 @@ static struct sk_buff *receive_mergeable(struct net_device 
*dev,
u16 num_buf;
struct page *page;
int offset;
-   struct sk_buff *head_skb, *curr_skb;
+   struct sk_buff *head_skb = NULL, *curr_skb;
struct bpf_prog *xdp_prog;
unsigned int truesize;
 
-- 
MST