Ping-Ke Shih <pkshih@xxxxxxxxxxx> wrote: > From: Ping-Ke Shih <pkshih@xxxxxxxxxxx> > > Enter/leavel IPS and LPS are large critical section, and they can't use > sleep function because running in atomic-context, which own a spin_lock. > In commit ba9f93f82aba ("rtlwifi: Fix enter/exit power_save"), it moves > LPS functions to thread-context, so this commit can simply change LPS's > spin lock to mutex. > Considering IPS functions, rtl_ips_nic_on() may be called by TX tasklet > (softirq-context) that check whether packet is auth frame. Fortunately, > current mac80211 will ask driver to leave IPS using op_config with > changed flag IEEE80211_CONF_CHANGE_IDLE, before issuing auth frame, so > IPS functions can run in thread-context and use mutex to protect critical > section, too. > Also, this commit removes some useless spin locks. > > Signed-off-by: Ping-Ke Shih <pkshih@xxxxxxxxxxx> 8 patches applied to wireless-drivers-next.git, thanks. a3fa3669d18c rtlwifi: Use mutex to replace spin_lock to protect IPS and LPS c8abbe79cce6 rtlwifi: fix scan channel 1 fail after IPS 37e89a0e5aa0 rtlwifi: unlink bss when un-association a44709bba70f rtlwifi: btcoex: Add power_on_setting routine 40d9dd4f1c5d rtlwifi: btcoex: Remove global variables from btcoex 3afb7da4693c rtlwifi: btcoex: Remove typedef statements b2283dad6bfd rtlwifi: btcoex: Add common function for qeurying BT information 188b6b092e3a rtlwifi: btcoex: add rfe_type parameter to btcoex -- https://patchwork.kernel.org/patch/10168581/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches