Ondřej Jirman <megi@xxxxxx> wrote: > From: Ondrej Jirman <megi@xxxxxx> > > This avoids RCU stalls caused by waiting up to 400ms for firmware init. > > Signed-off-by: Ondrej Jirman <megi@xxxxxx> > --- > drivers/net/wireless/realtek/rtw89/fw.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/net/wireless/realtek/rtw89/fw.c b/drivers/net/wireless/realtek/rtw89/fw.c > index 16e59a4a486e..2c034b764a0a 100644 > --- a/drivers/net/wireless/realtek/rtw89/fw.c > +++ b/drivers/net/wireless/realtek/rtw89/fw.c > @@ -109,9 +109,9 @@ int rtw89_fw_check_rdy(struct rtw89_dev *rtwdev, enum rtw89_fwdl_check_type type > u8 val; > int ret; > > - ret = read_poll_timeout_atomic(mac->fwdl_get_status, val, > - val == RTW89_FWDL_WCPU_FW_INIT_RDY, > - 1, FWDL_WAIT_CNT, false, rtwdev, type); > + ret = read_poll_timeout(mac->fwdl_get_status, val, > + val == RTW89_FWDL_WCPU_FW_INIT_RDY, > + 1, FWDL_WAIT_CNT, false, rtwdev, type); As I know, sleeping while RCU lock is not allowed. Please share kernel log about the RCU stall and your perspective. > if (ret) { > switch (val) { > case RTW89_FWDL_CHECKSUM_FAIL: > -- > 2.51.0 >