mirror of
https://github.com/torvalds/linux.git
synced 2024-12-17 08:31:39 +00:00
rtl8188eu: Fix a possible sleep-in-atomic bug in _rtw_pwr_wakeup
The driver may sleep under a spinlock, and the function call path is: rtw_set_802_11_disassociate(acquire the spinlock) _rtw_pwr_wakeup usleep_range --> may sleep To fix it, usleep_range is replaced with udelay. This bug is found by my static analysis tool and my code review. Signed-off-by: Jia-Ju Bai <baijiaju1990@163.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
2bf9806d42
commit
f3691e0042
@ -570,7 +570,7 @@ int _rtw_pwr_wakeup(struct adapter *padapter, u32 ips_deffer_ms, const char *cal
|
||||
DBG_88E("%s wait ps_processing...\n", __func__);
|
||||
while (pwrpriv->ps_processing &&
|
||||
jiffies_to_msecs(jiffies - start) <= 3000)
|
||||
usleep_range(1000, 3000);
|
||||
udelay(1500);
|
||||
if (pwrpriv->ps_processing)
|
||||
DBG_88E("%s wait ps_processing timeout\n", __func__);
|
||||
else
|
||||
|
Loading…
Reference in New Issue
Block a user