On Sun, May 15, 2016 at 4:42 PM, Tom Herbert <t...@herbertland.com> wrote: > In several gso_segment functions there are checks of gso_type against > a seemingly arbitrary list of SKB_GSO_* flags. This seems like an > attempt to identify unsupported GSO types, but since the stack is > the one that set these GSO types in the first place this seems > unnecessary to do. If a combination isn't valid in the first > place that stack should not allow setting it. > > This is a code simplication especially for add new GSO types. > > Signed-off-by: Tom Herbert <t...@herbertland.com> > --- > net/ipv4/af_inet.c | 18 ------------------ > net/ipv4/gre_offload.c | 14 -------------- > net/ipv4/tcp_offload.c | 19 ------------------- > net/ipv4/udp_offload.c | 10 ---------- > net/ipv6/ip6_offload.c | 18 ------------------ > net/ipv6/udp_offload.c | 13 ------------- > net/mpls/mpls_gso.c | 9 --------- > 7 files changed, 101 deletions(-) >
<...> > diff --git a/net/mpls/mpls_gso.c b/net/mpls/mpls_gso.c > index bbcf604..6de1e13 100644 > --- a/net/mpls/mpls_gso.c > +++ b/net/mpls/mpls_gso.c > @@ -26,15 +26,6 @@ static struct sk_buff *mpls_gso_segment(struct sk_buff > *skb, > netdev_features_t mpls_features; > __be16 mpls_protocol; > > - if (unlikely(skb_shinfo(skb)->gso_type & > - ~(SKB_GSO_TCPV4 | > - SKB_GSO_TCPV6 | > - SKB_GSO_UDP | > - SKB_GSO_DODGY | > - SKB_GSO_TCP_FIXEDID | > - SKB_GSO_TCP_ECN))) > - goto out; > - > /* Setup inner SKB. */ > mpls_protocol = skb->protocol; > skb->protocol = skb->inner_protocol; So this last bit here introduces a warning: net/mpls/mpls_gso.c: In function ‘mpls_gso_segment’: net/mpls/mpls_gso.c:51:1: warning: label ‘out’ defined but not used [-Wunused-label] out: ^ If you drop the label out from mpls_gso_segment then that should resolve it. - Alex