[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ZGM+iu2xLGsZCOE9@corigine.com>
Date: Tue, 16 May 2023 10:27:54 +0200
From: Simon Horman <simon.horman@...igine.com>
To: Ido Schimmel <idosch@...dia.com>
Cc: netdev@...r.kernel.org, davem@...emloft.net, kuba@...nel.org,
pabeni@...hat.com, edumazet@...gle.com, jiri@...nulli.us,
m.szyprowski@...sung.com
Subject: Re: [PATCH net] devlink: Fix crash with CONFIG_NET_NS=n
On Mon, May 15, 2023 at 07:29:25PM +0300, Ido Schimmel wrote:
> '__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@...sung.com>
> Closes: https://lore.kernel.org/netdev/600ddf9e-589a-2aa0-7b69-a438f833ca10@samsung.com/
> Tested-by: Marek Szyprowski <m.szyprowski@...sung.com>
> Signed-off-by: Ido Schimmel <idosch@...dia.com>
Reviewed-by: Simon Horman <simon.horman@...igine.com>
Powered by blists - more mailing lists