Search Linux Wireless

RE: [PATCH] net: wireless: rtw89: Sleep while waiting for firmware init

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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
> 






[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux