diff options
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/ppp_generic.c | 4 | ||||
-rw-r--r-- | drivers/net/pppoe.c | 3 |
2 files changed, 3 insertions, 4 deletions
diff --git a/drivers/net/ppp_generic.c b/drivers/net/ppp_generic.c index 0245e40b51a1..f608c12e3e8b 100644 --- a/drivers/net/ppp_generic.c +++ b/drivers/net/ppp_generic.c | |||
@@ -1691,8 +1691,8 @@ ppp_receive_nonmp_frame(struct ppp *ppp, struct sk_buff *skb) | |||
1691 | || ppp->npmode[npi] != NPMODE_PASS) { | 1691 | || ppp->npmode[npi] != NPMODE_PASS) { |
1692 | kfree_skb(skb); | 1692 | kfree_skb(skb); |
1693 | } else { | 1693 | } else { |
1694 | skb_pull(skb, 2); /* chop off protocol */ | 1694 | /* chop off protocol */ |
1695 | skb_postpull_rcsum(skb, skb->data - 2, 2); | 1695 | skb_pull_rcsum(skb, 2); |
1696 | skb->dev = ppp->dev; | 1696 | skb->dev = ppp->dev; |
1697 | skb->protocol = htons(npindex_to_ethertype[npi]); | 1697 | skb->protocol = htons(npindex_to_ethertype[npi]); |
1698 | skb->mac.raw = skb->data; | 1698 | skb->mac.raw = skb->data; |
diff --git a/drivers/net/pppoe.c b/drivers/net/pppoe.c index 9369f811075d..475dc930380f 100644 --- a/drivers/net/pppoe.c +++ b/drivers/net/pppoe.c | |||
@@ -337,8 +337,7 @@ static int pppoe_rcv_core(struct sock *sk, struct sk_buff *skb) | |||
337 | if (sk->sk_state & PPPOX_BOUND) { | 337 | if (sk->sk_state & PPPOX_BOUND) { |
338 | struct pppoe_hdr *ph = (struct pppoe_hdr *) skb->nh.raw; | 338 | struct pppoe_hdr *ph = (struct pppoe_hdr *) skb->nh.raw; |
339 | int len = ntohs(ph->length); | 339 | int len = ntohs(ph->length); |
340 | skb_pull(skb, sizeof(struct pppoe_hdr)); | 340 | skb_pull_rcsum(skb, sizeof(struct pppoe_hdr)); |
341 | skb_postpull_rcsum(skb, ph, sizeof(*ph)); | ||
342 | if (pskb_trim_rcsum(skb, len)) | 341 | if (pskb_trim_rcsum(skb, len)) |
343 | goto abort_kfree; | 342 | goto abort_kfree; |
344 | 343 | ||