]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
net: ipv6: ioam6: use consistent dst names
authorJustin Iurman <justin.iurman@uliege.be>
Fri, 2 Jan 2026 20:37:24 +0000 (12:37 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 8 Jan 2026 09:15:01 +0000 (10:15 +0100)
[ Upstream commit d55acb9732d981c7a8e07dd63089a77d2938e382 ]

Be consistent and use the same terminology as other lwt users: orig_dst
is the dst_entry before the transformation, while dst is either the
dst_entry in the cache or the dst_entry after the transformation

Signed-off-by: Justin Iurman <justin.iurman@uliege.be>
Link: https://patch.msgid.link/20250415112554.23823-2-justin.iurman@uliege.be
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
[Harshit: Backport to 6.12.y]
Stable-dep-of: 99a2ace61b21 ("net: use dst_dev_rcu() in sk_setup_caps()")
Signed-off-by: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
net/ipv6/ioam6_iptunnel.c

index 647dd8417c6cf92440a30be45f689b73de18a923..163b9e47eb9ff72764cfffcae43ade9bf3897fa5 100644 (file)
@@ -338,7 +338,8 @@ static int ioam6_do_encap(struct net *net, struct sk_buff *skb,
 
 static int ioam6_output(struct net *net, struct sock *sk, struct sk_buff *skb)
 {
-       struct dst_entry *dst = skb_dst(skb), *cache_dst = NULL;
+       struct dst_entry *orig_dst = skb_dst(skb);
+       struct dst_entry *dst = NULL;
        struct ioam6_lwt *ilwt;
        int err = -EINVAL;
        u32 pkt_cnt;
@@ -346,7 +347,7 @@ static int ioam6_output(struct net *net, struct sock *sk, struct sk_buff *skb)
        if (skb->protocol != htons(ETH_P_IPV6))
                goto drop;
 
-       ilwt = ioam6_lwt_state(dst->lwtstate);
+       ilwt = ioam6_lwt_state(orig_dst->lwtstate);
 
        /* Check for insertion frequency (i.e., "k over n" insertions) */
        pkt_cnt = atomic_fetch_inc(&ilwt->pkt_cnt);
@@ -354,7 +355,7 @@ static int ioam6_output(struct net *net, struct sock *sk, struct sk_buff *skb)
                goto out;
 
        local_bh_disable();
-       cache_dst = dst_cache_get(&ilwt->cache);
+       dst = dst_cache_get(&ilwt->cache);
        local_bh_enable();
 
        switch (ilwt->mode) {
@@ -364,7 +365,7 @@ do_inline:
                if (ipv6_hdr(skb)->nexthdr == NEXTHDR_HOP)
                        goto out;
 
-               err = ioam6_do_inline(net, skb, &ilwt->tuninfo, cache_dst);
+               err = ioam6_do_inline(net, skb, &ilwt->tuninfo, dst);
                if (unlikely(err))
                        goto drop;
 
@@ -374,7 +375,7 @@ do_encap:
                /* Encapsulation (ip6ip6) */
                err = ioam6_do_encap(net, skb, &ilwt->tuninfo,
                                     ilwt->has_tunsrc, &ilwt->tunsrc,
-                                    &ilwt->tundst, cache_dst);
+                                    &ilwt->tundst, dst);
                if (unlikely(err))
                        goto drop;
 
@@ -392,7 +393,7 @@ do_encap:
                goto drop;
        }
 
-       if (unlikely(!cache_dst)) {
+       if (unlikely(!dst)) {
                struct ipv6hdr *hdr = ipv6_hdr(skb);
                struct flowi6 fl6;
 
@@ -403,20 +404,20 @@ do_encap:
                fl6.flowi6_mark = skb->mark;
                fl6.flowi6_proto = hdr->nexthdr;
 
-               cache_dst = ip6_route_output(net, NULL, &fl6);
-               if (cache_dst->error) {
-                       err = cache_dst->error;
+               dst = ip6_route_output(net, NULL, &fl6);
+               if (dst->error) {
+                       err = dst->error;
                        goto drop;
                }
 
                /* cache only if we don't create a dst reference loop */
-               if (dst->lwtstate != cache_dst->lwtstate) {
+               if (orig_dst->lwtstate != dst->lwtstate) {
                        local_bh_disable();
-                       dst_cache_set_ip6(&ilwt->cache, cache_dst, &fl6.saddr);
+                       dst_cache_set_ip6(&ilwt->cache, dst, &fl6.saddr);
                        local_bh_enable();
                }
 
-               err = skb_cow_head(skb, LL_RESERVED_SPACE(cache_dst->dev));
+               err = skb_cow_head(skb, LL_RESERVED_SPACE(dst->dev));
                if (unlikely(err))
                        goto drop;
        }
@@ -424,16 +425,16 @@ do_encap:
        /* avoid lwtunnel_output() reentry loop when destination is the same
         * after transformation (e.g., with the inline mode)
         */
-       if (dst->lwtstate != cache_dst->lwtstate) {
+       if (orig_dst->lwtstate != dst->lwtstate) {
                skb_dst_drop(skb);
-               skb_dst_set(skb, cache_dst);
+               skb_dst_set(skb, dst);
                return dst_output(net, sk, skb);
        }
 out:
-       dst_release(cache_dst);
-       return dst->lwtstate->orig_output(net, sk, skb);
+       dst_release(dst);
+       return orig_dst->lwtstate->orig_output(net, sk, skb);
 drop:
-       dst_release(cache_dst);
+       dst_release(dst);
        kfree_skb(skb);
        return err;
 }