lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <173695829158.512722.7214845701917001049.kvalo@kernel.org>
Date: Wed, 15 Jan 2025 16:24:52 +0000 (UTC)
From: Kalle Valo <kvalo@...nel.org>
To: Alexis Lothoré <alexis.lothore@...tlin.com>
Cc: Ajay Singh <ajay.kathat@...rochip.com>,
 Claudiu Beznea <claudiu.beznea@...on.dev>, Marek Vasut <marex@...x.de>,
 Thomas Petazzoni <thomas.petazzoni@...tlin.com>,
 linux-wireless@...r.kernel.org, linux-kernel@...r.kernel.org, Alexis Lothoré <alexis.lothore@...tlin.com>
Subject: Re: wifi: wilc1000: unregister wiphy only after netdev registration

Alexis Lothoré <alexis.lothore@...tlin.com> wrote:

> wiphy_unregister()/wiphy_free() has been recently decoupled from
> wilc_netdev_cleanup() to fix a faulty error path in sdio/spi probe
> functions. However this change introduced a new failure when simply
> loading then unloading the driver:
> 
>   $ modprobe wilc1000-sdio; modprobe -r wilc1000-sdio
>   WARNING: CPU: 0 PID: 115 at net/wireless/core.c:1145 wiphy_unregister+0x904/0xc40 [cfg80211]
>   Modules linked in: wilc1000_sdio(-) wilc1000 cfg80211 bluetooth ecdh_generic ecc
>   CPU: 0 UID: 0 PID: 115 Comm: modprobe Not tainted 6.13.0-rc6+ #45
>   Hardware name: Atmel SAMA5
>   Call trace:
>    unwind_backtrace from show_stack+0x18/0x1c
>    show_stack from dump_stack_lvl+0x44/0x70
>    dump_stack_lvl from __warn+0x118/0x27c
>    __warn from warn_slowpath_fmt+0xcc/0x140
>    warn_slowpath_fmt from wiphy_unregister+0x904/0xc40 [cfg80211]
>    wiphy_unregister [cfg80211] from wilc_sdio_remove+0xb0/0x15c [wilc1000_sdio]
>    wilc_sdio_remove [wilc1000_sdio] from sdio_bus_remove+0x104/0x3f0
>    sdio_bus_remove from device_release_driver_internal+0x424/0x5dc
>    device_release_driver_internal from driver_detach+0x120/0x224
>    driver_detach from bus_remove_driver+0x17c/0x314
>    bus_remove_driver from sys_delete_module+0x310/0x46c
>    sys_delete_module from ret_fast_syscall+0x0/0x1c
>   Exception stack(0xd0acbfa8 to 0xd0acbff0)
>   bfa0:                   0044b210 0044b210 0044b24c 00000800 00000000 00000000
>   bfc0: 0044b210 0044b210 00000000 00000081 00000000 0044b210 00000000 00000000
>   bfe0: 00448e24 b6af99c4 0043ea0d aea2e12c
>   irq event stamp: 0
>   hardirqs last  enabled at (0): [<00000000>] 0x0
>   hardirqs last disabled at (0): [<c01588f0>] copy_process+0x1c4c/0x7bec
>   softirqs last  enabled at (0): [<c0158944>] copy_process+0x1ca0/0x7bec
>   softirqs last disabled at (0): [<00000000>] 0x0
> 
> The warning is triggered by the fact that there is still a
> wireless_device linked to the wiphy we are unregistering, due to
> wiphy_unregister() now being called after net device unregister (performed
> in wilc_netdev_cleanup()). Fix this warning by moving wiphy_unregister()
> after wilc_netdev_cleanup() is nominal paths (ie: driver removal).
> wilc_netdev_cleanup() ordering is left untouched in error paths in probe
> function because net device is not registered in those paths (so the
> warning can not trigger), yet the wiphy can still be registered, and we
> still some cleanup steps from wilc_netdev_cleanup().
> 
> Fixes: 1be94490b6b8 ("wifi: wilc1000: unregister wiphy only if it has been registered")
> Signed-off-by: Alexis Lothoré <alexis.lothore@...tlin.com>

Patch applied to wireless-next.git, thanks.

208dea9107e8 wifi: wilc1000: unregister wiphy only after netdev registration

-- 
https://patchwork.kernel.org/project/linux-wireless/patch/20250114-wilc1000_modprobe-v1-1-ad19d46f0c07@bootlin.com/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ