{
        if (!skb->l4_hash && !skb->sw_hash) {
                struct flow_keys keys;
+               __u32 hash = __get_hash_from_flowi6(fl6, &keys);
 
-               __skb_set_sw_hash(skb, __get_hash_from_flowi6(fl6, &keys),
-                                 flow_keys_have_l4(&keys));
+               __skb_set_sw_hash(skb, hash, flow_keys_have_l4(&keys));
        }
 
        return skb->hash;
 {
        if (!skb->l4_hash && !skb->sw_hash) {
                struct flow_keys keys;
+               __u32 hash = __get_hash_from_flowi4(fl4, &keys);
 
-               __skb_set_sw_hash(skb, __get_hash_from_flowi4(fl4, &keys),
-                                 flow_keys_have_l4(&keys));
+               __skb_set_sw_hash(skb, hash, flow_keys_have_l4(&keys));
        }
 
        return skb->hash;