From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ed1-f51.google.com (mail-ed1-f51.google.com [209.85.208.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7CE4CCA52 for ; Sun, 26 Jul 2026 22:19:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.51 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785104385; cv=none; b=qJgmKeCnVNRkWNCo8T/GadfL3aUWtjvRjorzRtKZ4PCb3L3T93ik+lAKlgjJc5jTYpbY7H/flAtFqNt/Lj0Y29OFIy1HshdYWLnj35mN+sJWjPzXHGBGI3JITeZGrCS9XzoHy6ImTLWq0yBhes0eOUnR9iYUk7VIsI9mp/QKrqM= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785104385; c=relaxed/simple; bh=/yDyEKG75YqKDusww/DX2764BjZuS3yKOk6JMkg83a8=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=eTd5BGSh5Q2iBJZ3G01sMZL7GyRL7Y2swtmIQwmIKy0ANMVPxf0OBjsyY4gfx4cUo6aafEUem1/QeiZtgdd3d4hQ3W/pfkHKmMDDtAiDgU09OAbuPgZEIx7E6NJTyPISY6cZcFVEgOFeyv/PtcZB/8CgTp2xOcaMkH93vS4DbCo= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bairaktaris.de; spf=pass smtp.mailfrom=bairaktaris.de; dkim=pass (2048-bit key) header.d=bairaktaris.de header.i=@bairaktaris.de header.b=eGkkRZHQ; arc=none smtp.client-ip=209.85.208.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bairaktaris.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bairaktaris.de Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bairaktaris.de header.i=@bairaktaris.de header.b="eGkkRZHQ" Received: by mail-ed1-f51.google.com with SMTP id 4fb4d7f45d1cf-69c5fda04a8so2988568a12.1 for ; Sun, 26 Jul 2026 15:19:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bairaktaris.de; s=google; t=1785104382; x=1785709182; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=Z6N0boIWyU0J5K0rc/NgMjVGoZ83sDuVKA9GvDpL6Ug=; b=eGkkRZHQt6tODwIVB6vrQD1n522piEIfL1+r9RoN6vh18Vu97VFRKATQOK1bIQnIP4 dRK+aswsoxeGARtTtGP48iVzhn02MS9H8uFe7Tus+Pww/IPyUc7JAWHb9KzBiZ7O/wIY oHx++uPKg8C4yK+/5FhUVFyQ0qoB1xRiQGQiK4FsrYwDnsIN9RjueJwFov7VTBVA4IwG kD3U+PbAcUmiGpnqvmwzjP9KCn6HgeseXYcQSy2WMz/w72CTAzai+CrcJAfZ5GtSrxUT /tCX4hTaIbJWFN1KoGMq06n/cxdl7KES9NoKnSTXZnt4FRT6/81NLwSOgPWDFvBdpIQZ ADQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785104382; x=1785709182; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=Z6N0boIWyU0J5K0rc/NgMjVGoZ83sDuVKA9GvDpL6Ug=; b=K1bZUUUxLLAAfDCteZ08nfu+NJ0tMQ4GwhNzNlaHnGKsbJhi/CjxF82tZIbfJCaDpH UZe18gcKlyflmtdBxWtmSS/racqkul9Jk3tC1uOFVASIetcdpM1gnWaeX7mt2jLGHYBc ey7KxW0X64x4+ADLUztObirft3K/8LqRuE1P+CVm/R67VKQYvWNdfQmYvxkV8rTlI+m4 7UDMWZU8RY6bNAs6azW0RUo5ZKps8T6wfXxvxSIk5QmikpyEs9Z0fQ4Zt8znVZdaCFbO v5CFnC2IgIexGn4wtpIryL0drd+mFpXdocN+z5Ptj9y0BkVohzOM3B6WUUV9+VeT4klg F/pA== X-Forwarded-Encrypted: i=1; AHgh+RoC1a7z2/nIoNgwE10cqlzKemXQA996NbY+IN7d9pkxTTjS68g2Y3ocKOmjJPi7hQ+wYQ2Lwowje2SJmmA=@vger.kernel.org X-Gm-Message-State: AOJu0YxwHXfSyD9fEDPPbP51zWTX/z6dAax8qlTny06Vekvy6O2CqqAI rxEuIpp3TKdu4LYrG+rgvo2brFsVQw/hLp9KxmhoEznjjc0OHkPI8ZXOJ7KGQHdzhQ== X-Gm-Gg: AR+sD13nueQ5v6tBIC6N3QvZakjyxwWDlHgUkOxQyqjxGKQqppd85L8M5zM/4/duruK EQf8zLt0tf/XMXJ828E3K5SX+4UQghPwecnpBzx69Kfpl9m7Z9SutEUvivZQ8CUuwAfGZGuus4h 9V55td0plx1j61NGzMqcVmefXggSzIZCc/8R3yCLQ5KJAVx50NLt7rVwkrJvUQyRaWq4OeZe0IU hx4dYWzPime9D73PNrwySVlMI7VZ03pE0qY86BcrxoLQJ67qUpJN4Vi4kJ1aWV1CtL0AIqsBOQP SRkmvNUd+5rDFVrwdyuwglEb5OKIIrnKKZbHkfiG+NPPEOXG1HdR1kMDksF6B3vzw5f6IwWDl9f P75I934Xu8dTqukHY0eWI6sJdz/ejN8aOYA5w6gZePoLt3JRP6zJsnhrpfeW5a7/9h0qs0QAfnP pKPR2jDcKsHyv1wlvAX3/IKbZEpLTONHNu5ItdtRAHeZBOEUUForBNMYRdpMln+Xw3CucauDrl0 UtIkvmjzp7OhsQcNm9IHLRJAyV/ZxhzjbFI3awCTTdOcWpr224dwuuawGpH3LmXEd6UXjfkH2wE FdAlBzAPIvdG/AC+hUsNKYKV9VUxTa8cM/pQnZCswdusqaVHDsRCsaGIeEJrbtqsHgLlxw9y6TQ E40EDCY8otETKoWX3oUHjRk6xRXMER2s= X-Received: by 2002:a17:907:72cf:b0:c15:abe2:e1df with SMTP id a640c23a62f3a-c1f1f07e1d6mr239191166b.43.1785104381647; Sun, 26 Jul 2026 15:19:41 -0700 (PDT) Received: from Desktop (p54affe4b.dip0.t-ipconnect.de. [84.175.254.75]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c1c32a76fecsm561599466b.8.2026.07.26.15.19.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 26 Jul 2026 15:19:41 -0700 (PDT) From: Julius Bairaktaris To: jjohnson@kernel.org Cc: ath11k@lists.infradead.org, linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org, baochen.qiang@oss.qualcomm.com, vasanthakumar.thiagarajan@oss.qualcomm.com, rameshkumar.sundaram@oss.qualcomm.com Subject: [PATCH ath-next v2 0/2] wifi: ath11k: fix SoC reboot on firmware crash on AHB Date: Mon, 27 Jul 2026 00:19:06 +0200 Message-ID: <20260726221908.104873-1-julius@bairaktaris.de> X-Mailer: git-send-email 2.53.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit On IPQ8074 every firmware assert takes the whole SoC down. The DP NAPI keeps polling while ath11k_core_reconfigure_on_crash() frees the data path underneath it, and dereferences a ring the teardown has already cleared. The interrupts used to be disabled at the top of that function. commit d455e805de70 ("wifi: ath11k: rearrange IRQ enable/disable in reset path") moved the disable into ath11k_core_reset(), which AHB parts never reach on a real firmware crash: reset_work is queued only from mhi.c and from the debugfs hw-restart handler. Patch 2 puts the disable back on the crash path. Patch 1 is a prerequisite - the CE half of the quiesce is a no-op on AHB today because the bus never implemented the hif ops. Reproduced and fixed on a Xiaomi AX3600 (IPQ8074 hw2.0), with no out-of-tree modules loaded, using the debugfs simulate_fw_crash 'assert' trigger: before: 2/2 asserts panic in ath11k_dp_rx_process_mon_status() and reboot the SoC after: 3/3 asserts recover, 5 firmware boots across a single 397 s uptime, no panics, both radios stay up Note the debugfs 'hw-restart' trigger does not reproduce this, since it goes through ath11k_core_reset() - the one path that still disables the interrupts. Only a real firmware assert does. Patch 1 is by inspection: it makes ath11k_hif_ce_irq_disable() take effect on AHB, which also fixes the existing call in ath11k_core_reset(). I have not managed to trigger a CE-side crash on its own, so if you would rather see that split out or dropped, say so. Changes in v2 (no functional change, review comments from Jeff on 2/2): - separate the ath-specific Tested-on tag from the upstream tags with a blank line - use the standard kernel block comment style, with /* on its own line v1: https://lore.kernel.org/ath11k/20260725141757.1316877-1-julius@bairaktaris.de/ Julius Bairaktaris (2): wifi: ath11k: implement CE interrupt enable/disable for AHB wifi: ath11k: disable interrupts during firmware crash recovery drivers/net/wireless/ath/ath11k/ahb.c | 9 ++++++++- drivers/net/wireless/ath/ath11k/core.c | 10 ++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) -- 2.53.0