From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) (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 802C22D2496 for ; Fri, 2 Jan 2026 20:03:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.171 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767384200; cv=none; b=Ua9iCCMp+SlHVnymH4+DlB4Ay7f+6jvj/Jk8fPfTW04Lg5B9MSRU0eiQ1I2/64lLUZpGGQja2uAQvdfhVyTMreROH+3ylAipMuPAs2W55FfsAmAxLqwrwROU+U9eyZWoTyMjHQ5HWPhl6CVO70KcFOa8V130QPBSnIGZBvSg9Ys= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767384200; c=relaxed/simple; bh=FhTQfE5bOzE5tdi4tp88giNIsjXZ5M7QxgyGKV5uYQA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=EvxJVScq0Vwh0r7KF4nbDl2cadvNcPVSDyu0dtmgvOibRKp3VkE62HdCDx9sJyCTcDAi2OsH+8yuXZ2KTPeXyTVGohaF3dw0jjbSJATF/2th+O8iwt3b/JXn5FtQ+J9/2Blef3Qd/utWXD/K1i0RVhCACCchwdR2ZE+FMzNvpKw= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Pw0YEU5u; arc=none smtp.client-ip=209.85.214.171 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Pw0YEU5u" Received: by mail-pl1-f171.google.com with SMTP id d9443c01a7336-2a0b4320665so191206965ad.1 for ; Fri, 02 Jan 2026 12:03:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1767384198; x=1767988998; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=2G4ImuRF3VbvO9uYx7tT0KAIoCmTeaN1WiLwF/Wm090=; b=Pw0YEU5u7RO27uqwyS9N3Un2ggi4dveRqVzIZyMPlKDBd/JWY4lWWoIFgZL4CqUbpK 0pe6SwjOhRlu0Z3X3dYB/S8R+C+MW8KeHJTDyW3O1B3RI85oe96CacswKu3hjYL++WZI kflzcrPwLfUF20xt8NeoPxaTKTuokc74z+RapDCYCcgbO1ychEFuk5PS/Ndku/cAXZnf 9/ztvn4hFfWL/z/DUN3dDfDxQmbg4yXaBFTe8wXSMEYW7tBImc3wAEGJP83aAfkmOI1U xCvIZYzfsAgRRwchYUFyBMyYd5p1xBqcgskcRSQpjSMAZIAhs8QPh8f4Sy7anMc6eR9w Gk/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767384198; x=1767988998; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=2G4ImuRF3VbvO9uYx7tT0KAIoCmTeaN1WiLwF/Wm090=; b=e81L5SuIxRo8655qSENHWRCMjaTPSzWMDuV+612V+/ri9ZIzbHoztnjUwOkVHfkL7k 581t4+94PDIeB6T7WWFYF/aq4hmKiAZ+Ff61ICQ33YEdalZ00z02mFwYX0YPQWL2BFGO BfsnnIOCWN7gbS9yVmFLeaxZqCgK28gqIw3mSDyh79CIy6qfrnzUvGyp8+cghrbGpkpX 3YizmbFxbaTOZy2t+Wd04qUwvpXdeKpz3G3mNYIQlFedodA5vOdm6jnIeJwvultMb5Xs kWfj2NidVQLiGhQ7EaK45zp/8jEyxmkWnZnFnZ+Cyb6JpN/eNpYCx1hVypgHd2VMhAON zsxg== X-Forwarded-Encrypted: i=1; AJvYcCUvPKRu0yosLkTLahTgyzftuzhC1ybeRlzjlxa8L/TCIdL31vlz+Oq/laFhlBIeptnSIx1pi4sN+EwR38w=@vger.kernel.org X-Gm-Message-State: AOJu0YxxcqHoriTy77RbrrfAWyFBbex3/Ho5SRcc6iQg+sJoZvcIu0tR K0XDhYhBWnAoKBpjO0PeAqLkvqWxLhssMlexcTJRnI3fTwZ8qoJpXzy7ZnWZ85CM X-Gm-Gg: AY/fxX6OUM4+XtGWkViVzl5uwu3KEUxM1npkz5NGPEQo99OMWmxbS3O1IHBOywfzZlt kWJPLf0H/Nr1gKIVaUp7czczrANJFI+ABIE5akAxvDDrDWkCu/vbt5nBU/em1o5YINGB0Ixwz+c RnM6qSBXsKnvK4xCjbIU5FZYVnbEdl5rl8mCW+m/525w853vd3dOBMPykvmOwxzVhFeF5sf5Vlo S5OlTdPSweeY5JCWcyHbGevB3R6tw28woRLDGulC5pfGqg+8aue5+YsCyFIuLl+vCaQwpte4Kim yJVpUQ5Sfpjf1uWM/zKptjvXlP16ZcFIcyEjP2nSDi+t0Pufht+Nczp/TVUYlgjwTIeUiHk+vjE TrcwEI3nw13WDk/K+2ce3h/UmJdatkjyLbry70VmlT5Me1G+MGfYFBXPcb7Cai9rDNOR+ayzkKw 3mk9gPFbDTaoroq+mvfOnwjuG93mSgErGS60Kv6ZPuv5bLq1wFPqYLb5cd9DBQzCY= X-Google-Smtp-Source: AGHT+IFKqvVGthWN24o7nYHTavjyGNiAOtKDNOq7RpmLHmYQZqv8sAIrpZUOjEgpt+0P2SSiW5Emkw== X-Received: by 2002:a05:7022:608c:b0:11a:273c:dd98 with SMTP id a92af1059eb24-121722b50b9mr40737332c88.20.1767384197392; Fri, 02 Jan 2026 12:03:17 -0800 (PST) Received: from zubuntu.bengal-mercat.ts.net ([2001:5a8:60d:bc9:9ebf:dff:fe00:f8f2]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-1217253bfe2sm120203795c88.10.2026.01.02.12.03.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 02 Jan 2026 12:03:16 -0800 (PST) From: Zac Bowling To: zbowling@gmail.com Cc: deren.wu@mediatek.com, kvalo@kernel.org, linux-kernel@vger.kernel.org, linux-mediatek@lists.infradead.org, linux-wireless@vger.kernel.org, lorenzo@kernel.org, nbd@nbd.name, ryder.lee@mediatek.com, sean.wang@mediatek.com Subject: [PATCH v2 0/6] wifi: mt76: mt7925/mt792x: additional stability fixes Date: Fri, 2 Jan 2026 12:03:09 -0800 Message-ID: <20260102200315.290015-1-zbowling@gmail.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260101062543.186499-1-zbowling@gmail.com> References: <20260101062543.186499-1-zbowling@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: Zac Bowling This series contains additional fixes for the MT7925 WiFi driver that address issues discovered through further testing and static analysis. These patches build on my previous series [1] and address the remaining stability issues I've encountered on the Framework Desktop. Changes since v1: - 6 new patches addressing MLO roaming, firmware recovery, and resume path Summary of fixes: Patch 12: Fix key removal failure during MLO roaming During MLO link teardown, mac80211 may request key removal after driver state is already cleaned up. Return success instead of -EINVAL when the link is already gone, as the key is effectively removed. Patch 13: Fix kernel warning in MLO ROC setup Replace WARN_ON_ONCE() with proper NULL checks in mt7925_mcu_set_mlo_roc(). During MLO AP setup, the channel may not be configured yet when this function is called. Return -ENOLINK instead of triggering a warning. Patch 14: Add NULL checks for MLO link pointers in MCU functions Several MCU functions dereference mt792x_sta_to_link() and mt792x_vif_to_link() without checking for NULL. Add defensive checks in sta_hdr_trans_tlv, wtbl_update_hdr_trans, sta_amsdu_tlv, sta_mld_tlv, and sta_update. Patch 15: Fix firmware reload after previous load crash (mt792x) Backport the MT7915 fix (commit 79dd14f) to MT792x. If firmware loading crashes after acquiring the patch semaphore, subsequent loads fail with "Failed to get patch semaphore". Release the semaphore and restart MCU before loading to ensure clean state. Patch 16: Add mutex protection in resume path The resume path was missing mutex protection around mt7925_mcu_set_deep_sleep() and mt7925_regd_update() calls. Found by static analysis (sparse/coccinelle). Patch 17: Add NULL checks and error handling Add NULL checks in mt7925_mac_link_sta_add() and mt7925_conf_tx(). Add error logging for MCU calls in mt7925_regd_update() to help diagnose regulatory domain update failures. These fixes have been tested on a Framework Desktop (AMD Ryzen AI Max 300) with the MT7925 (RZ717) WiFi card. The system is now stable through suspend/resume cycles, MLO roaming, and firmware recovery scenarios that previously caused crashes or hangs. [1] https://lore.kernel.org/all/20260101062543.186499-1-zbowling@gmail.com/ Zac Bowling (6): wifi: mt76: mt7925: fix key removal failure during MLO roaming wifi: mt76: mt7925: fix kernel warning in MLO ROC setup wifi: mt76: mt7925: add NULL checks for MLO link pointers in MCU wifi: mt76: mt792x: fix firmware reload after failed load wifi: mt76: mt7925: add mutex protection in resume path wifi: mt76: mt7925: add NULL checks and error handling drivers/net/wireless/mediatek/mt76/mt7925/init.c | 13 ++- drivers/net/wireless/mediatek/mt76/mt7925/main.c | 19 +++- drivers/net/wireless/mediatek/mt76/mt7925/mcu.c | 45 +++++--- drivers/net/wireless/mediatek/mt76/mt7925/pci.c | 2 + drivers/net/wireless/mediatek/mt76/mt792x_core.c | 14 +++ 5 files changed, 75 insertions(+), 18 deletions(-) -- 2.43.0