diff --git a/[refs] b/[refs] index bbc1e2fd9d6a..76e7e4d60e34 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 7c13a0d9a1ac6875f6380763b947f4a5a016605f +refs/heads/master: 1f18b7176e2e41fada24584ce3c80e9abfaca52b diff --git a/trunk/net/packet/af_packet.c b/trunk/net/packet/af_packet.c index 0856a13cb53d..8298e676f5a0 100644 --- a/trunk/net/packet/af_packet.c +++ b/trunk/net/packet/af_packet.c @@ -1610,9 +1610,11 @@ static int packet_recvmsg(struct kiocb *iocb, struct socket *sock, err = -EINVAL; vnet_hdr_len = sizeof(vnet_hdr); - if ((len -= vnet_hdr_len) < 0) + if (len < vnet_hdr_len) goto out_free; + len -= vnet_hdr_len; + if (skb_is_gso(skb)) { struct skb_shared_info *sinfo = skb_shinfo(skb);