]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/commitdiff
[NET] gso: Fix GSO feature mask in sk_setup_caps
authorHerbert Xu <herbert@gondor.apana.org.au>
Fri, 1 Jun 2007 05:15:50 +0000 (22:15 -0700)
committerDavid S. Miller <davem@sunset.davemloft.net>
Mon, 4 Jun 2007 01:08:49 +0000 (18:08 -0700)
This isn't a bug just yet as only TCP uses sk_setup_caps for GSO.
However, if and when UDP or something else starts using it this is
likely to cause a problem if we forget to add software emulation
for it at the same time.

The problem is that right now we translate GSO emulation to the
bitmask NETIF_F_GSO_MASK, which includes every protocol, even
ones that we cannot emulate.

This patch makes it provide only the ones that we can emulate.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/sock.c

index 7e51d3a5e4f6c5af74f0e782e28acdcdb08c4d57..c14ce0198d25d7be42762ee3dae5df76ba9ec8d6 100644 (file)
@@ -998,7 +998,7 @@ void sk_setup_caps(struct sock *sk, struct dst_entry *dst)
        __sk_dst_set(sk, dst);
        sk->sk_route_caps = dst->dev->features;
        if (sk->sk_route_caps & NETIF_F_GSO)
-               sk->sk_route_caps |= NETIF_F_GSO_MASK;
+               sk->sk_route_caps |= NETIF_F_GSO_SOFTWARE;
        if (sk_can_gso(sk)) {
                if (dst->header_len)
                        sk->sk_route_caps &= ~NETIF_F_GSO_MASK;