Patch "devlink: Fix crash with CONFIG_NET_NS=n" has been added to the 6.3-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

    devlink: Fix crash with CONFIG_NET_NS=n

to the 6.3-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:
     devlink-fix-crash-with-config_net_ns-n.patch
and it can be found in the queue-6.3 subdirectory.

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



commit 28173c1e4e90f4414360fd710fbf1b05ad647e38
Author: Ido Schimmel <idosch@xxxxxxxxxx>
Date:   Mon May 15 19:29:25 2023 +0300

    devlink: Fix crash with CONFIG_NET_NS=n
    
    [ Upstream commit d6352dae0903fe8beae4c007dc320e9e9f1fed45 ]
    
    '__net_initdata' becomes a no-op with CONFIG_NET_NS=y, but when this
    option is disabled it becomes '__initdata', which means the data can be
    freed after the initialization phase. This annotation is obviously
    incorrect for the devlink net device notifier block which is still
    registered after the initialization phase [1].
    
    Fix this crash by removing the '__net_initdata' annotation.
    
    [1]
    general protection fault, probably for non-canonical address 0xcccccccccccccccc: 0000 [#1] PREEMPT SMP
    CPU: 3 PID: 117 Comm: (udev-worker) Not tainted 6.4.0-rc1-custom-gdf0acdc59b09 #64
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.2-1.fc37 04/01/2014
    RIP: 0010:notifier_call_chain+0x58/0xc0
    [...]
    Call Trace:
     <TASK>
     dev_set_mac_address+0x85/0x120
     dev_set_mac_address_user+0x30/0x50
     do_setlink+0x219/0x1270
     rtnl_setlink+0xf7/0x1a0
     rtnetlink_rcv_msg+0x142/0x390
     netlink_rcv_skb+0x58/0x100
     netlink_unicast+0x188/0x270
     netlink_sendmsg+0x214/0x470
     __sys_sendto+0x12f/0x1a0
     __x64_sys_sendto+0x24/0x30
     do_syscall_64+0x38/0x80
     entry_SYSCALL_64_after_hwframe+0x63/0xcd
    
    Fixes: e93c9378e33f ("devlink: change per-devlink netdev notifier to static one")
    Reported-by: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx>
    Closes: https://lore.kernel.org/netdev/600ddf9e-589a-2aa0-7b69-a438f833ca10@xxxxxxxxxxx/
    Tested-by: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx>
    Signed-off-by: Ido Schimmel <idosch@xxxxxxxxxx>
    Reviewed-by: Jiri Pirko <jiri@xxxxxxxxxx>
    Reviewed-by: Simon Horman <simon.horman@xxxxxxxxxxxx>
    Link: https://lore.kernel.org/r/20230515162925.1144416-1-idosch@xxxxxxxxxx
    Signed-off-by: Jakub Kicinski <kuba@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/net/devlink/core.c b/net/devlink/core.c
index 0e58eee44bdb2..c23ebabadc526 100644
--- a/net/devlink/core.c
+++ b/net/devlink/core.c
@@ -294,7 +294,7 @@ static struct pernet_operations devlink_pernet_ops __net_initdata = {
 	.pre_exit = devlink_pernet_pre_exit,
 };
 
-static struct notifier_block devlink_port_netdevice_nb __net_initdata = {
+static struct notifier_block devlink_port_netdevice_nb = {
 	.notifier_call = devlink_port_netdevice_event,
 };
 



[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