On 4/3/22 14:48, Pavel Skripkin wrote:
On 4/3/22 14:41, Michael Straube wrote:
Hi Fabio,
wait..
rtw_set_802_11_disassociate() calls rtw_pwr_wakeup() only if
check_fwstate(pmlmepriv, _FW_LINKED) is true.
if (check_fwstate(pmlmepriv, _FW_LINKED)) {
rtw_disassoc_cmd(padapter, 0, true);
rtw_indicate_disconnect(padapter);
rtw_free_assoc_resources(padapter, 1);
rtw_pwr_wakeup(padapter);
}
msleep() cannot be called in atomic context:
drivers/staging/r8188eu/core/rtw_pwrctrl.c:379
if (pwrpriv->ps_processing) {
while (pwrpriv->ps_processing && rtw_get_passing_time_ms(start) <= 3000)
msleep(10);
}
Hm, just wondering, shouldn't we annotate load from
pwrpriv->ps_processing with READ_ONCE() inside while loop?
IIUC compiler might want to cache first load into register and we will
stuck here forever.
Am I missing something?
With regards,
Pavel Skripkin