[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4a3f6b40a0064de1acd80f4eeb1cdd0f@realtek.com>
Date: Wed, 10 Sep 2025 00:37:54 +0000
From: Ping-Ke Shih <pkshih@...ltek.com>
To: Ondřej Jirman <megi@....cz>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
CC: "open list:REALTEK WIRELESS DRIVER (rtw89)"
<linux-wireless@...r.kernel.org>
Subject: RE: [PATCH] net: wireless: rtw89: Sleep while waiting for firmware init
Ondřej Jirman <megi@....cz> wrote:
> From: Ondrej Jirman <megi@....cz>
>
> This avoids RCU stalls caused by waiting up to 400ms for firmware init.
>
> Signed-off-by: Ondrej Jirman <megi@....cz>
> ---
> 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
>
Powered by blists - more mailing lists