Johannes Berg <johannes@xxxxxxxxxxxxxxxx> writes: >> +static void cc33xx_rc_update_work(struct work_struct *work) >> +{ >> + struct cc33xx_vif *wlvif = container_of(work, struct cc33xx_vif, >> + rc_update_work); >> + struct cc33xx *cc = wlvif->cc; >> + struct ieee80211_vif *vif = cc33xx_wlvif_to_vif(wlvif); >> + >> + mutex_lock(&cc->mutex); > > Given the way the wiphy mutex now works, I'd strongly recommend not > having your own mutex any more - it's a huge simplification in a lot of > places, and there's very little downside since everything coming from > higher layers holds the wiphy mutex already (and almost certainly needs > to acquire your own mutex.) I can recommend using wiphy_lock(), at least in ath12k it made the locking so much simpler. The more wireless drivers start to use it the better. -- https://patchwork.kernel.org/project/linux-wireless/list/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches