Re: [PATCH 2/2] wifi: nl80211: fix deadlock in nl80211_set_cqm_rssi (6.6.x)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, Dec 16, 2023 at 05:47:17AM +0000, Léo Lam wrote:
> Commit 008afb9f3d57 ("wifi: cfg80211: fix CQM for non-range use"
> backported to 6.6.x) causes nl80211_set_cqm_rssi not to release the
> wdev lock in some of the error paths.
> 
> Of course, the ensuing deadlock causes userland network managers to
> break pretty badly, and on typical systems this also causes lockups on
> on suspend, poweroff and reboot. See [1], [2], [3] for example reports.
> 
> The upstream commit 7e7efdda6adb ("wifi: cfg80211: fix CQM for non-range
> use"), committed in November 2023, is completely fine because there was
> another commit in August 2023 that removed the wdev lock:
> see commit 076fc8775daf ("wifi: cfg80211: remove wdev mutex").
> 
> The reason things broke in 6.6.5 is that commit 4338058f6009 was applied
> without also applying 076fc8775daf.
> 
> Commit 076fc8775daf ("wifi: cfg80211: remove wdev mutex") is a rather
> large commit; adjusting the error handling (which is what this commit does)
> yields a much simpler patch and was tested to work properly.
> 
> Fix the deadlock by releasing the lock before returning.
> 
> [1] https://bugzilla.kernel.org/show_bug.cgi?id=218247
> [2] https://bbs.archlinux.org/viewtopic.php?id=290976
> [3] https://lore.kernel.org/all/87sf4belmm.fsf@xxxxxxxxxxxxx/
> 
> Link: https://lore.kernel.org/stable/e374bb16-5b13-44cc-b11a-2f4eefb1ecf5@xxxxxxxxxxx/
> Fixes: 008afb9f3d57 ("wifi: cfg80211: fix CQM for non-range use")
> Tested-by: Léo Lam <leo@xxxxxxxxx>
> Tested-by: Philip Müller <philm@xxxxxxxxxxx>
> Cc: stable@xxxxxxxxxxxxxxx
> Cc: Johannes Berg <johannes.berg@xxxxxxxxx>
> Signed-off-by: Léo Lam <leo@xxxxxxxxx>
> ---
>  net/wireless/nl80211.c | 18 ++++++++++++------
>  1 file changed, 12 insertions(+), 6 deletions(-)

Both now queued up, thanks.

greg k-h




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux