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