From: "Luka Gejak" <luka.gejak@linux.dev>
To: "Alastair D'Silva" <alastair@d-silva.org>,
linux-wireless@vger.kernel.org,
"Ping-Ke Shih" <pkshih@realtek.com>,
"Kalle Valo" <kvalo@kernel.org>
Cc: "Martin Blumenstingl" <martin.blumenstingl@googlemail.com>,
"Jernej Skrabec" <jernej.skrabec@gmail.com>,
"Ulf Hansson" <ulfh@kernel.org>,
linux-kernel@vger.kernel.org,
"Alastair D'Silva" <alastair@d-silva.org>
Subject: Re: [PATCH rtw-next v9 0/4] wifi: rtw88: sdio: Fix unhandled RX request interrupt storm
Date: Sat, 07 Nov 2026 08:32:44 +0000 [thread overview]
Message-ID: <ab3dcde64bb90809ae10627803315d7385d6708e@linux.dev> (raw)
In-Reply-To: <20261107035321.1210303-1-alastair@d-silva.org>
November 7, 2026 at 4:53 AM, "Alastair D'Silva" <alastair@d-silva.org> wrote:
>
> On 3081-based SDIO chips (observed on RTL8821CS; RTL8822BS and RTL8822CS
> are inferred to be affected as they share the 3081 architecture), clearing
> REG_SDIO_HISR_RX_REQUEST requires both a software W1C acknowledge and an
> empty RX FIFO. Masking this bit out before writing back to HISR prevents
> the software acknowledge from happening, leaving the bit asserted even
> after the FIFO is drained and trapping the CPU core in an infinite
> interrupt storm that locks up the system upon receiving network traffic.
>
> This series fixes the interrupt storm on 3081 chips and addresses
> related SDIO lifecycle, locking, and error handling issues:
>
> - Patch 1 returns error codes from rtw_sdio_rxfifo_recv() on allocation,
> oversized packet, or read failures so the caller stops immediately
> instead of burning through the loop budget.
> - Patch 2 tracks operational state via rtwsdio->running protected by an
> irq_lock mutex (using a mutex as SDIO bus operations sleep), serializes
> start/stop state transitions under sdio_claim_host() and irq_lock,
> cancels the TX worker synchronously on stop, drains rtwsdio->tx_queue[]
> with locked skb_dequeue() and ieee80211_free_txskb() in rtw_sdio_stop()
> and again in rtw_sdio_start(), and resets rtwsdio->tx_queue_stopped[]
> while waking stopped AC queues under tx_queue[].lock in rtw_sdio_start().
> - Patch 3 fixes the interrupt storm by splitting
> rtw_sdio_handle_interrupt() into 8051 and 3081 paths. On 3081,
> interrupts are masked via HIMR, acknowledged via W1C writeback,
> serviced, and re-enabled under irq_lock if still running.
> - Patch 4 refactors rtw_sdio_rx_isr() into separate 8051 and 3081 variants
> to clarify the differences in register width and HISR handling without
> any logic changes.
>
Thanks for addressing those comments, v9 looks good to me,
Reviewed-by: Luka Gejak <luka.gejak@linux.dev>
Best regards,
Luka Gejak
next prev parent reply other threads:[~2026-11-07 8:32 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-07 3:53 [PATCH rtw-next v9 0/4] wifi: rtw88: sdio: Fix unhandled RX request interrupt storm Alastair D'Silva
2026-11-07 3:53 ` [PATCH rtw-next v9 1/4] wifi: rtw88: sdio: Handle allocation and read errors in rtw_sdio_rxfifo_recv Alastair D'Silva
2026-11-07 3:53 ` [PATCH rtw-next v9 2/4] wifi: rtw88: sdio: Track running state and cancel TX worker on stop Alastair D'Silva
2026-11-07 3:53 ` [PATCH rtw-next v9 3/4] wifi: rtw88: sdio: Fix unhandled RX request interrupt storm Alastair D'Silva
2026-11-07 3:53 ` [PATCH rtw-next v9 4/4] wifi: rtw88: sdio: Split rtw_sdio_rx_isr into 8051 and 3081 variants Alastair D'Silva
2026-11-07 8:32 ` Luka Gejak [this message]
2026-11-08 3:06 ` [PATCH rtw-next v9 0/4] wifi: rtw88: sdio: Fix unhandled RX request interrupt storm Ping-Ke Shih
2026-11-08 5:14 ` Alastair D'Silva
2026-11-08 6:06 ` Luka Gejak
2026-11-09 20:29 ` Alastair D'Silva
2026-11-09 21:49 ` Luka Gejak
2026-11-10 0:43 ` Luka Gejak
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ab3dcde64bb90809ae10627803315d7385d6708e@linux.dev \
--to=luka.gejak@linux.dev \
--cc=alastair@d-silva.org \
--cc=jernej.skrabec@gmail.com \
--cc=kvalo@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-wireless@vger.kernel.org \
--cc=martin.blumenstingl@googlemail.com \
--cc=pkshih@realtek.com \
--cc=ulfh@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.