From: Herbert Xu Date: Fri, 1 Jun 2007 05:15:50 +0000 (-0700) Subject: [NET] gso: Fix GSO feature mask in sk_setup_caps X-Git-Tag: v2.6.22-rc4~5^2~2 X-Git-Url: http://pilppa.com/gitweb/?a=commitdiff_plain;h=4fcd6b991685493185c2bb8a76b21aadb658bd76;p=linux-2.6-omap-h63xx.git [NET] gso: Fix GSO feature mask in sk_setup_caps 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 Signed-off-by: David S. Miller --- diff --git a/net/core/sock.c b/net/core/sock.c index 7e51d3a5e4f..c14ce0198d2 100644 --- a/net/core/sock.c +++ b/net/core/sock.c @@ -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;