forked from Minki/linux
[NET] snap: needs hardware checksum fix
The SNAP code pops off it's 5 byte header, but doesn't adjust the checksum. This would cause problems when using device that does IP over SNAP and hardware receive checksums. Signed-off-by: Stephen Hemminger <shemminger@osdl.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
1113a7e92e
commit
42c5e15f18
|
@ -59,8 +59,10 @@ static int snap_rcv(struct sk_buff *skb, struct net_device *dev,
|
||||||
proto = find_snap_client(skb->h.raw);
|
proto = find_snap_client(skb->h.raw);
|
||||||
if (proto) {
|
if (proto) {
|
||||||
/* Pass the frame on. */
|
/* Pass the frame on. */
|
||||||
|
u8 *hdr = skb->data;
|
||||||
skb->h.raw += 5;
|
skb->h.raw += 5;
|
||||||
skb_pull(skb, 5);
|
skb_pull(skb, 5);
|
||||||
|
skb_postpull_rcsum(skb, hdr, 5);
|
||||||
rc = proto->rcvfunc(skb, dev, &snap_packet_type, orig_dev);
|
rc = proto->rcvfunc(skb, dev, &snap_packet_type, orig_dev);
|
||||||
} else {
|
} else {
|
||||||
skb->sk = NULL;
|
skb->sk = NULL;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user