summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjørn Mork <bjorn@mork.no>2014-01-10 22:10:17 (GMT)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-02-06 19:22:20 (GMT)
commitdafceed284787a69622553eb2316c60500d5efb3 (patch)
treeffab9b0b9b9091c66b420ee87730f416f933f0c9
parent5f9e04ca1afe0b6faaef14ee6c65f2d9a8a6c5b7 (diff)
downloadlinux-fsl-qoriq-dafceed284787a69622553eb2316c60500d5efb3.tar.xz
net: usbnet: fix SG initialisation
[ Upstream commit fdc3452cd2c7b2bfe0f378f92123f4f9a98fa2bd ] Commit 60e453a940ac ("USBNET: fix handling padding packet") added an extra SG entry in case padding is necessary, but failed to update the initialisation of the list. This can cause list traversal to fall off the end of the list, resulting in an oops. Fixes: 60e453a940ac ("USBNET: fix handling padding packet") Reported-by: Thomas Kear <thomas@kear.co.nz> Cc: Ming Lei <ming.lei@canonical.com> Signed-off-by: Bjørn Mork <bjorn@mork.no> Tested-by: Ming Lei <ming.lei@canonical.com> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/net/usb/usbnet.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/usb/usbnet.c b/drivers/net/usb/usbnet.c
index 8494bb5..aba04f5 100644
--- a/drivers/net/usb/usbnet.c
+++ b/drivers/net/usb/usbnet.c
@@ -1245,7 +1245,7 @@ static int build_dma_sg(const struct sk_buff *skb, struct urb *urb)
return -ENOMEM;
urb->num_sgs = num_sgs;
- sg_init_table(urb->sg, urb->num_sgs);
+ sg_init_table(urb->sg, urb->num_sgs + 1);
sg_set_buf(&urb->sg[s++], skb->data, skb_headlen(skb));
total_len += skb_headlen(skb);