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
  */
 
        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);
 
        } 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;
        }
 }
                } 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;