Patch "nh: fix scope used to find saddr when adding non gw nh" has been added to the 6.0-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

    nh: fix scope used to find saddr when adding non gw nh

to the 6.0-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:
     nh-fix-scope-used-to-find-saddr-when-adding-non-gw-n.patch
and it can be found in the queue-6.0 subdirectory.

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



commit 97ba5b1a959917b06f4e97be94818dab84c74402
Author: Nicolas Dichtel <nicolas.dichtel@xxxxxxxxx>
Date:   Thu Oct 20 12:09:52 2022 +0200

    nh: fix scope used to find saddr when adding non gw nh
    
    [ Upstream commit bac0f937c343d651874f83b265ca8f5070ed4f06 ]
    
    As explained by Julian, fib_nh_scope is related to fib_nh_gw4, but
    fib_info_update_nhc_saddr() needs the scope of the route, which is
    the scope "before" fib_nh_scope, ie fib_nh_scope - 1.
    
    This patch fixes the problem described in commit 747c14307214 ("ip: fix
    dflt addr selection for connected nexthop").
    
    Fixes: 597cfe4fc339 ("nexthop: Add support for IPv4 nexthops")
    Link: https://lore.kernel.org/netdev/6c8a44ba-c2d5-cdf-c5c7-5baf97cba38@xxxxxx/
    Signed-off-by: Nicolas Dichtel <nicolas.dichtel@xxxxxxxxx>
    Reviewed-by: Julian Anastasov <ja@xxxxxx>
    Signed-off-by: Jakub Kicinski <kuba@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/net/ipv4/nexthop.c b/net/ipv4/nexthop.c
index 853a75a8fbaf..d8ef05347fd9 100644
--- a/net/ipv4/nexthop.c
+++ b/net/ipv4/nexthop.c
@@ -2534,7 +2534,7 @@ static int nh_create_ipv4(struct net *net, struct nexthop *nh,
 	if (!err) {
 		nh->nh_flags = fib_nh->fib_nh_flags;
 		fib_info_update_nhc_saddr(net, &fib_nh->nh_common,
-					  fib_nh->fib_nh_scope);
+					  !fib_nh->fib_nh_scope ? 0 : fib_nh->fib_nh_scope - 1);
 	} else {
 		fib_nh_release(net, fib_nh);
 	}



[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