From: Kalle Valo <kvalo@kernel.org>
To: "Alexis Lothoré" <alexis.lothore@bootlin.com>
Cc: Ajay Singh <ajay.kathat@microchip.com>,
Claudiu Beznea <claudiu.beznea@tuxon.dev>,
Marek Vasut <marex@denx.de>,
Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] wifi: wilc1000: unregister wiphy only after netdev registration
Date: Tue, 14 Jan 2025 15:20:10 +0200 [thread overview]
Message-ID: <87bjw9r0qd.fsf@kernel.org> (raw)
In-Reply-To: <165a166c-d402-48d9-a190-44a710fa4d1c@bootlin.com> ("Alexis Lothoré"'s message of "Tue, 14 Jan 2025 13:56:05 +0100")
Alexis Lothoré <alexis.lothore@bootlin.com> writes:
> On 1/14/25 13:20, Kalle Valo wrote:
>
>> Alexis Lothoré <alexis.lothore@bootlin.com> writes:
>>
>>> 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.
>>>
>>> Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com>
>>> ---
>>> I clearly overlooked this simple scenario/misunderstood expected
>>> unregistration order when fixing some spi probe error path, my bad (see
>>> commit 89a7616e1715 ("ARM: dts: at91-sama5d27_wlsom1: update bluetooth
>>> chip description") in wireless-next)
>>
>> No worries, bugs are business as usual.
>>
>>> @Kalle: 89a7616e1715 (the faulty commit) is only in wireless-next for
>>> now IIUC, so I did not provide any Fixes: tag to prevent any faulty SHA1
>>> if those commits end up being picked in stable tree (however, the faulty
>>> commit _has_ a Fixes tag). Please let me know if we should proceed
>>> differently.
>>
>> Hmm, I don't really follow you here. I feel that always adding the Fixes
>> tag is the safest option, that way it's clear for everyone what commit
>> we are fixing.
>
> I was thinking about the fact that the faulty commit SHA1 may change because of
> a merge, and then break the Fixes: tag, but maybe I am overthinking.
Ah, now I understand. Actually commit id doesn't change during a merge
so we are safe in that regard. The commit id only changes if there's a
rebase in the tree and we don't rebase wireless trees (unless something
really drastic has happened).
> So if it's ok for you, I would like to add the Fixes tag
>> but I can't find commit 89a7616e1715 anywhere.
>
> Gaah, indeed that's not the correct SHA1. The faulty commit in wireless-next is
> in fact commit 1be94490b6b8 ("wifi: wilc1000: unregister wiphy only if it has
> been registered")
Thanks, so I'm planning to add this during commit:
Fixes: 1be94490b6b8 ("wifi: wilc1000: unregister wiphy only if it has been registered")
Is that ok?
--
https://patchwork.kernel.org/project/linux-wireless/list/
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
next prev parent reply other threads:[~2025-01-14 13:20 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-14 10:45 [PATCH] wifi: wilc1000: unregister wiphy only after netdev registration Alexis Lothoré
2025-01-14 12:20 ` Kalle Valo
2025-01-14 12:56 ` Alexis Lothoré
2025-01-14 13:20 ` Kalle Valo [this message]
2025-01-14 15:44 ` Alexis Lothoré
2025-01-15 16:24 ` Kalle Valo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87bjw9r0qd.fsf@kernel.org \
--to=kvalo@kernel.org \
--cc=ajay.kathat@microchip.com \
--cc=alexis.lothore@bootlin.com \
--cc=claudiu.beznea@tuxon.dev \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-wireless@vger.kernel.org \
--cc=marex@denx.de \
--cc=thomas.petazzoni@bootlin.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox