From: John Jacques <john.jacq...@intel.com>

Signed-off-by: John Jacques <john.jacq...@intel.com>
---
 drivers/net/virtio_net.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
index 9ecc6ca..6337549 100644
--- a/drivers/net/virtio_net.c
+++ b/drivers/net/virtio_net.c
@@ -550,11 +550,14 @@ static int add_recvbuf_small(struct virtnet_info *vi, 
struct receive_queue *rq,
        hdr = skb_vnet_hdr(skb);
        sg_init_table(rq->sg, MAX_SKB_FRAGS + 2);
        sg_set_buf(rq->sg, hdr, vi->hdr_len);
-       skb_to_sgvec(skb, rq->sg + 1, 0, skb->len);
-
-       err = virtqueue_add_inbuf(rq->vq, rq->sg, 2, skb, gfp);
-       if (err < 0)
+       err = skb_to_sgvec(skb, rq->sg + 1, 0, skb->len);
+       if (err < 0) {
                dev_kfree_skb(skb);
+       } else {
+               err = virtqueue_add_inbuf(rq->vq, rq->sg, 2, skb, gfp);
+               if (err < 0)
+                       dev_kfree_skb(skb);
+       }
 
        return err;
 }
-- 
2.7.4

-- 
_______________________________________________
linux-yocto mailing list
linux-yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto

Reply via email to