From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.remote-ip=95.215.58.97 ARC-Seal: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; cv=none; t=1794040368; b=efwMba0w8o5P3T11rfbg+IR+MdU5owx38xV2mYfrHhGcHo/DwDJvyMgQ6SNJlj1YuDKi +Xq9UZe/bIZ5yQjRkd8m9SIBW9H5fEkXrWzfpO0agPBXBNVE6Mo3LrBAddRP6LCYbYA09 oenrmHMqUVtJR7k5mmqQScP5tGmHD2c/6V8feLTCXLLlDm2l9346TrKjWRMzu29hPZ0nL CGkA2RxWWKK6aLMCB9E14zw2OcEwIHsLKv2wpjI3hVSPssRfrvfZroFJO0hpHAkApPM05 PCPfIM0NXEtqZpWFgSJlgfTUtcLIMMHCoxr+E1pyAI3RHjH3dHuMgf4ntd5I2ndM8cQ== ARC-Message-Signature: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; c=relaxed/relaxed; t=1794040368; h=DMARC-Filter:X-Envelope-To:DKIM-Signature:X-Envelope-To:Received: X-Mizu-Trace-ID:X-Migadu-Flow:MIME-Version:Date:Content-Type: Content-Transfer-Encoding:From:Message-ID:TLS-Required:Subject:To:Cc: In-Reply-To:References; bh=RWyW4hq+lMBprz1xzIIZPbcfvi7PBGN3wx1iq7Ue0n4=; b=FRa492qwVpSh78Hoyq0IBRZNW8/h91g6gr4MOriE5f9SUf0uS8/XI3ugu15vx/3fjRBN +zpsXxAG2ts5XCz+3iu2d6t5jdRdUbe8s1Z++3BfP2E7frA4vzh1BfURkb0z2bfFLqnwT /aWXWYPsbIqVYoORH+L7fUheQqvpgjxMWHcX9/bN6wXM2f++tnqtJcYPHO1eNhzR0w8jK gZFwZvzuzrBJ94akRn01dlM+u8VkxYsTvQgE+PIvrAYgwvPTcGdKsA0mWiRLwkSp7R7IK rKTzbJMHCcykdVIT3ehCrjF5h0hCd7wiKdTw3vfj7OG+HLZ7M7pTzA7h9TKFkbdKKGQ== ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass header.from=linux.dev; spf=pass smtp.mailfrom=linux.dev; dkim=pass header.d=linux.dev header.i=@linux.dev header.a=rsa-sha256 header.s=key1 header.b=aqYywTcq; arc=none smtp.remote-ip=95.215.58.97 Received: from mta1.migadu.com (out-97.mta1.migadu.com [95.215.58.97]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A0DB9606A326 for ; Sat, 7 Nov 2026 08:32:46 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.2 smtp.subspace.kernel.org A0DB9606A326 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key, unprotected) header.d=linux.dev header.i=@linux.dev header.a=rsa-sha256 header.s=key1 header.b=aqYywTcq X-Envelope-To: linux-wireless@vger.kernel.org DKIM-Signature: a=rsa-sha256; bh=E2UbgK+sPXXzPeqlhJBqYe006JI/BKOsIY3hNoZrk6s=; c=simple/simple; d=linux.dev; h=from:to:subject:date:message-id:mime-version:content-type; s=key1; t=1794040364; v=1; x=1794645164; b=aqYywTcqGlwCiT9mq1d+X+723V8YQp6W15Lq7ZXj94eL5ctlE1F2kGzSL/+/Zso5i2vDAVih 69Yyd0H6bOdfrWFfc8g0Uduy6A3vA4Ppw5yv6Xzzu8yj1wcvJUDRwTU90CxE4svm7PBM0HH9XIr kosGiS0mNw0eLI9+qh8LnCZ0= X-Envelope-To: linux-wireless@vger.kernel.org Received: by smtp.migadu.com with ESMTPS id 6647e240e5dc9034; Sat, 07 Nov 2026 08:32:44 +0000 X-Mizu-Trace-ID: 6647e240e5dc9034 X-Migadu-Flow: FLOW_OUT X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Date: Sat, 07 Nov 2026 08:32:44 +0000 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable From: "Luka Gejak" Message-ID: TLS-Required: No Subject: Re: [PATCH rtw-next v9 0/4] wifi: rtw88: sdio: Fix unhandled RX request interrupt storm To: "Alastair D'Silva" , linux-wireless@vger.kernel.org, "Ping-Ke Shih" , "Kalle Valo" Cc: "Martin Blumenstingl" , "Jernej Skrabec" , "Ulf Hansson" , linux-kernel@vger.kernel.org, "Alastair D'Silva" In-Reply-To: <20261107035321.1210303-1-alastair@d-silva.org> References: <20261107035321.1210303-1-alastair@d-silva.org> November 7, 2026 at 4:53 AM, "Alastair D'Silva" wr= ote: >=20 >=20On 3081-based SDIO chips (observed on RTL8821CS; RTL8822BS and RTL882= 2CS > are inferred to be affected as they share the 3081 architecture), clear= ing > REG_SDIO_HISR_RX_REQUEST requires both a software W1C acknowledge and a= n > empty RX FIFO. Masking this bit out before writing back to HISR prevent= s > 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= . >=20 >=20This series fixes the interrupt storm on 3081 chips and addresses > related SDIO lifecycle, locking, and error handling issues: >=20 >=20- Patch 1 returns error codes from rtw_sdio_rxfifo_recv() on allocati= on, > 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), serialize= s > 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 varia= nts > to clarify the differences in register width and HISR handling without > any logic changes. >=20 Thanks=20for addressing those comments, v9 looks good to me, Reviewed-by: Luka Gejak Best regards, Luka Gejak