diff --git a/include/net/ipv6.h b/include/net/ipv6.h index 6dcc473fbe51d65f5e04fc911f9a57a5bfb8fecd..798558fd16817f540e4e6923f5385fc193197c1e 100644 --- a/include/net/ipv6.h +++ b/include/net/ipv6.h @@ -907,11 +907,6 @@ static inline __be32 ip6_make_flowinfo(unsigned int tclass, __be32 flowlabel) return htonl(tclass << IPV6_TCLASS_SHIFT) | flowlabel; } -static inline u32 flowi6_get_flowlabel(const struct flowi6 *fl6) -{ - return (__force u32)(fl6->flowlabel & IPV6_FLOWLABEL_MASK); -} - /* * Prototypes exported by ipv6 */ diff --git a/net/core/flow_dissector.c b/net/core/flow_dissector.c index 6497b815e7a2704979fabcfc049a7a8e3d43dfe2..4fc1e84d77ec1d8469903463e2226fe667d4ece1 100644 --- a/net/core/flow_dissector.c +++ b/net/core/flow_dissector.c @@ -1334,7 +1334,7 @@ __u32 __get_hash_from_flowi6(const struct flowi6 *fl6, struct flow_keys *keys) keys->ports.src = fl6->fl6_sport; keys->ports.dst = fl6->fl6_dport; keys->keyid.keyid = fl6->fl6_gre_key; - keys->tags.flow_label = flowi6_get_flowlabel(fl6); + keys->tags.flow_label = (__force u32)fl6->flowlabel; keys->basic.ip_proto = fl6->flowi6_proto; return flow_hash_from_keys(keys); diff --git a/net/ipv6/route.c b/net/ipv6/route.c index 06593781b59a5e1844d937bfe2c538344d0a4a7f..22c4de2317d0694db21193a94394bddeb50dd5c9 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c @@ -1981,7 +1981,7 @@ static void ip6_multipath_l3_keys(const struct sk_buff *skb, } else { keys->addrs.v6addrs.src = key_iph->saddr; keys->addrs.v6addrs.dst = key_iph->daddr; - keys->tags.flow_label = ip6_flowlabel(key_iph); + keys->tags.flow_label = ip6_flowinfo(key_iph); keys->basic.ip_proto = key_iph->nexthdr; } } @@ -2002,7 +2002,7 @@ u32 rt6_multipath_hash(const struct net *net, const struct flowi6 *fl6, } else { hash_keys.addrs.v6addrs.src = fl6->saddr; hash_keys.addrs.v6addrs.dst = fl6->daddr; - hash_keys.tags.flow_label = flowi6_get_flowlabel(fl6); + hash_keys.tags.flow_label = (__force u32)fl6->flowlabel; hash_keys.basic.ip_proto = fl6->flowi6_proto; } break;