OSDN Git Service

gro: Fix illegal merging of trailer trash
authorHerbert Xu <herbert@gondor.apana.org.au>
Tue, 17 Nov 2009 13:18:18 +0000 (05:18 -0800)
committerDavid S. Miller <davem@davemloft.net>
Tue, 17 Nov 2009 13:18:18 +0000 (05:18 -0800)
commit69c0cab120a85471054614418b447349caba22d7
tree6ab6f5ee4d0e605c61280f2b1eaa57e94001bde6
parente54d5512b600aa0d492010436ff7eb0c9194efc1
gro: Fix illegal merging of trailer trash

When we've merged skb's with page frags, and subsequently receive
a trailer skb (< MSS) that is not completely non-linear (this can
occur on Intel NICs if the packet size falls below the threshold),
GRO ends up producing an illegal GSO skb with a frag_list.

This is harmless unless the skb is then forwarded through an
interface that requires software GSO, whereupon the GSO code
will BUG.

This patch detects this case in GRO and avoids merging the
trailer skb.

Reported-by: Mark Wagner <mwagner@redhat.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/skbuff.c