Patch "l3mdev: l3mdev_master_upper_ifindex_by_index_rcu should be using netdev_master_upper_dev_get_rcu" has been added to the 5.17-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

    l3mdev: l3mdev_master_upper_ifindex_by_index_rcu should be using netdev_master_upper_dev_get_rcu

to the 5.17-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:
     l3mdev-l3mdev_master_upper_ifindex_by_index_rcu-shou.patch
and it can be found in the queue-5.17 subdirectory.

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



commit f2d900740406032b3f9dba364490c21cdcfb40b8
Author: David Ahern <dsahern@xxxxxxxxxx>
Date:   Wed Apr 13 11:43:19 2022 -0600

    l3mdev: l3mdev_master_upper_ifindex_by_index_rcu should be using netdev_master_upper_dev_get_rcu
    
    [ Upstream commit 83daab06252ee5d0e1f4373ff28b79304945fc19 ]
    
    Next patch uses l3mdev_master_upper_ifindex_by_index_rcu which throws
    a splat with debug kernels:
    
    [13783.087570] ------------[ cut here ]------------
    [13783.093974] RTNL: assertion failed at net/core/dev.c (6702)
    [13783.100761] WARNING: CPU: 3 PID: 51132 at net/core/dev.c:6702 netdev_master_upper_dev_get+0x16a/0x1a0
    
    [13783.184226] CPU: 3 PID: 51132 Comm: kworker/3:3 Not tainted 5.17.0-custom-100090-g6f963aafb1cc #682
    [13783.194788] Hardware name: Mellanox Technologies Ltd. MSN2010/SA002610, BIOS 5.6.5 08/24/2017
    [13783.204755] Workqueue: mld mld_ifc_work [ipv6]
    [13783.210338] RIP: 0010:netdev_master_upper_dev_get+0x16a/0x1a0
    [13783.217209] Code: 0f 85 e3 fe ff ff e8 65 ac ec fe ba 2e 1a 00 00 48 c7 c6 60 6f 38 83 48 c7 c7 c0 70 38 83 c6 05 5e b5 d7 01 01 e8 c6 29 52 00 <0f> 0b e9 b8 fe ff ff e8 5a 6c 35 ff e9 1c ff ff ff 48 89 ef e8 7d
    [13783.238659] RSP: 0018:ffffc9000b37f5a8 EFLAGS: 00010286
    [13783.244995] RAX: 0000000000000000 RBX: ffff88812ee5c000 RCX: 0000000000000000
    [13783.253379] RDX: ffff88811ce09d40 RSI: ffffffff812d0fcd RDI: fffff5200166fea7
    [13783.261769] RBP: 0000000000000000 R08: 0000000000000001 R09: ffff8882375f4287
    [13783.270138] R10: ffffed1046ebe850 R11: 0000000000000001 R12: dffffc0000000000
    [13783.278510] R13: 0000000000000275 R14: ffffc9000b37f688 R15: ffff8881273b4af8
    [13783.286870] FS:  0000000000000000(0000) GS:ffff888237400000(0000) knlGS:0000000000000000
    [13783.296352] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [13783.303177] CR2: 00007ff25fc9b2e8 CR3: 0000000174d23000 CR4: 00000000001006e0
    [13783.311546] Call Trace:
    [13783.314660]  <TASK>
    [13783.317553]  l3mdev_master_upper_ifindex_by_index_rcu+0x43/0xe0
    ...
    
    Change l3mdev_master_upper_ifindex_by_index_rcu to use
    netdev_master_upper_dev_get_rcu.
    
    Fixes: 6a6d6681ac1a ("l3mdev: add function to retreive upper master")
    Signed-off-by: Ido Schimmel <idosch@xxxxxxxxxx>
    Signed-off-by: David Ahern <dsahern@xxxxxxxxxx>
    Cc: Alexis Bauvin <abauvin@xxxxxxxxxxxx>
    Signed-off-by: Jakub Kicinski <kuba@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/net/l3mdev/l3mdev.c b/net/l3mdev/l3mdev.c
index 17927966abb3..8b14a24f1040 100644
--- a/net/l3mdev/l3mdev.c
+++ b/net/l3mdev/l3mdev.c
@@ -147,7 +147,7 @@ int l3mdev_master_upper_ifindex_by_index_rcu(struct net *net, int ifindex)
 
 	dev = dev_get_by_index_rcu(net, ifindex);
 	while (dev && !netif_is_l3_master(dev))
-		dev = netdev_master_upper_dev_get(dev);
+		dev = netdev_master_upper_dev_get_rcu(dev);
 
 	return dev ? dev->ifindex : 0;
 }



[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