]> git.baikalelectronics.ru Git - kernel.git/commit
gso: Stop fraglists from escaping
authorHerbert Xu <herbert@gondor.apana.org.au>
Thu, 4 Jun 2009 04:20:51 +0000 (21:20 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 4 Jun 2009 04:20:51 +0000 (21:20 -0700)
commit946373e8f2d56b81d973027dd5a6bdfdde3ba9dd
tree948c51313b36b155fe435807ad89a8a76441e7d7
parentfdabf43fc066255f6c2badfa521774a2020befc1
gso: Stop fraglists from escaping

As it stands skb fraglists can get past the check in dev_queue_xmit
if the skb is marked as GSO.  In particular, if the packet doesn't
have the proper checksums for GSO, but can otherwise be handled by
the underlying device, we will not perform the fraglist check on it
at all.

If the underlying device cannot handle fraglists, then this will
break.

The fix is as simple as moving the fraglist check from the device
check into skb_gso_ok.

This has caused crashes with Xen when used together with GRO which
can generate GSO packets with fraglists.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/netdevice.h