Patch "net: ipv6: fix dst ref loop in ila lwtunnel" has been added to the 6.12-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    net: ipv6: fix dst ref loop in ila lwtunnel

to the 6.12-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     net-ipv6-fix-dst-ref-loop-in-ila-lwtunnel.patch
and it can be found in the queue-6.12 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 677613854ff4621e079fc55cb3739d9100d5d48a
Author: Justin Iurman <justin.iurman@xxxxxxxxx>
Date:   Tue Mar 4 19:10:39 2025 +0100

    net: ipv6: fix dst ref loop in ila lwtunnel
    
    [ Upstream commit 0e7633d7b95b67f1758aea19f8e85621c5f506a3 ]
    
    This patch follows commit 92191dd10730 ("net: ipv6: fix dst ref loops in
    rpl, seg6 and ioam6 lwtunnels") and, on a second thought, the same patch
    is also needed for ila (even though the config that triggered the issue
    was pathological, but still, we don't want that to happen).
    
    Fixes: 79ff2fc31e0f ("ila: Cache a route to translated address")
    Cc: Tom Herbert <tom@xxxxxxxxxxxxxxx>
    Signed-off-by: Justin Iurman <justin.iurman@xxxxxxxxx>
    Link: https://patch.msgid.link/20250304181039.35951-1-justin.iurman@xxxxxxxxx
    Signed-off-by: Paolo Abeni <pabeni@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/net/ipv6/ila/ila_lwt.c b/net/ipv6/ila/ila_lwt.c
index ff7e734e335b0..ac4bcc623603a 100644
--- a/net/ipv6/ila/ila_lwt.c
+++ b/net/ipv6/ila/ila_lwt.c
@@ -88,7 +88,8 @@ static int ila_output(struct net *net, struct sock *sk, struct sk_buff *skb)
 			goto drop;
 		}
 
-		if (ilwt->connected) {
+		/* cache only if we don't create a dst reference loop */
+		if (ilwt->connected && orig_dst->lwtstate != dst->lwtstate) {
 			local_bh_disable();
 			dst_cache_set_ip6(&ilwt->dst_cache, dst, &fl6.saddr);
 			local_bh_enable();




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux