Commit 8d291d37 authored by Eric Dumazet's avatar Eric Dumazet Committed by Ben Hutchings

cx82310_eth: use skb_cow_head() to deal with cloned skbs

commit a9e840a2 upstream.

We need to ensure there is enough headroom to push extra header,
but we also need to check if we are allowed to change headers.

skb_cow_head() is the proper helper to deal with this.

Fixes: cc28a20e ("introduce cx82310_eth: Conexant CX82310-based ADSL router USB ethernet driver")
Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
Cc: James Hughes <james.hughes@raspberrypi.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
Signed-off-by: default avatarBen Hutchings <ben@decadent.org.uk>
parent 44c4e721
...@@ -277,11 +277,8 @@ static struct sk_buff *cx82310_tx_fixup(struct usbnet *dev, struct sk_buff *skb, ...@@ -277,11 +277,8 @@ static struct sk_buff *cx82310_tx_fixup(struct usbnet *dev, struct sk_buff *skb,
{ {
int len = skb->len; int len = skb->len;
if (skb_headroom(skb) < 2) { if (skb_cow_head(skb, 2)) {
struct sk_buff *skb2 = skb_copy_expand(skb, 2, 0, flags);
dev_kfree_skb_any(skb); dev_kfree_skb_any(skb);
skb = skb2;
if (!skb)
return NULL; return NULL;
} }
skb_push(skb, 2); skb_push(skb, 2);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment