• Ping-Ke Shih's avatar
    rtlwifi: Use mutex to replace spin_lock to protect IPS and LPS · a3fa3669
    Ping-Ke Shih authored
    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 ba9f93f8 ("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: default avatarPing-Ke Shih <pkshih@realtek.com>
    Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
    a3fa3669
usb.c 29.9 KB