From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-dl1-f54.google.com (mail-dl1-f54.google.com [74.125.82.54]) (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 F356E387367 for ; Tue, 20 Jan 2026 20:10:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.82.54 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768939848; cv=none; b=IDPwbQ3iT0wvrJTUFjIOLMmHLzGm7xJqcGrLThskw6lFrwfTXGT6/kEaFdrS6DPp8UfSVHZSYbDE09dMr7P0VvpWoSq7VmFgdkWKA4Vr9rVpS1HdeCcnELsUEo6uD0tE6MtBU68FLzWk2XZjO30cjpvbyMBWg1YNNbHC6rUD7KY= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768939848; c=relaxed/simple; bh=5Uz8Q2q6SpnaXy1nh7Cjsa+0KQQm8vY0C8p4Qg2pyWs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=HJdeSkUPGmZMSwGuWyvJWsxgTaFAv4g1gnll72p2Y749Y00sWmYgIR8/xBG2xbL0YxuiatJAZm1me2gd7e+uNCS7TEwltYVAcvznOgnPZdrvJy4NVtT33/qwbtsM6TvwXYWIqQ6Jra9oz7baR0uOiQ0fANQgXc/+4qGzwJ2ox9k= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=zacbowling.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=J2jLetvJ; arc=none smtp.client-ip=74.125.82.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=zacbowling.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="J2jLetvJ" Received: by mail-dl1-f54.google.com with SMTP id a92af1059eb24-12332910300so9237993c88.0 for ; Tue, 20 Jan 2026 12:10:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1768939846; x=1769544646; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:from:to:cc:subject:date :message-id:reply-to; bh=yRIzu+6S6vBi95fXcSYAvUvufcVOFBJ3gUVr6PCcUOA=; b=J2jLetvJmQhx6O6JLkY6GP0fgtUhUU1t2O0+d+TxRL++6ptGkskWUsvroNSTiS+MwL aTuBXGjYi4Ns5kkxrZHcgGXj9fN45OmHKIZKdOQ6MEvNX0fJFGVtNAjO4B6u9JtqkdUb zUylgBo0R6wlRZDpLlNWeMqvuhvrETfrLNfI1geRALDlP8yLgy8/5zpttqtJp8DYyVJq hSWADxA2KJtd8Ur0V2Av/wzmrpmoJrwlexVnfSsFjlBw5+i7hksjN+bYZcyghEbwoGJO rRpD1aIT71MuhI0AbrlF0mVPj+vXIQxPwvC7aUgwxJRS75VoOBg6mP1daZkzF8d2EAth GNXQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768939846; x=1769544646; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=yRIzu+6S6vBi95fXcSYAvUvufcVOFBJ3gUVr6PCcUOA=; b=h9cupVZPiBCkxWWFUZjRLG3fMX4xUqllGsAUnpbsNptYYEpUgrUESafHdxSC7fuBza p9hAUK2BQh01zuWeZtFET708Tms6WOUty6f78CPIJUdPGUILkrx9c26rrTymrncKHH+K xr2QRlHvHpBBnAdbBWG5rJPUD4eeHvF2Wf/TulhbKtzbtjFnmwef0MMDwBeoNBs9J+Ve FeywVGxd5XU129RV6f/zyqRPqHReTsWPsrZLVbbX4ocGBlXE/APQcSPfACZwD7aXWwpW I7gTA+HlbsfrQ9ouq+Hp90Jp+q7T/d3z2BjeDvePFC6R4jfDp1aqtV2yGH1F5QklHLMI Mhew== X-Forwarded-Encrypted: i=1; AJvYcCWir4G5pEKzjGil5U1jHsbTn4AqoI2c2S46MklEuBPMleshTQeCz2VJNidL6h/hcc7OQb6VhsA6VQ0Lbrs=@vger.kernel.org X-Gm-Message-State: AOJu0Yx4xMdBxhxtaQXv8KtxcYhVDc7AolWhSO5B7qyU8wcsICGrPjrt bi4fN8kRT8KLGm68ErXa7Rwu/mOxJeFw2E2wbj8lKIhOL22VEXBG7Erx X-Gm-Gg: AY/fxX7Bl6P9i7t8bNPXqJPaL9nzSIaQuifDEs4021BdmR791PxXCVv8eJv0tUeReyH InQZkv9CbJDxdMWwOiK8O8v8aVGJI4XXTSGxKs/PZ7zxrKSMKSS99jEIoik5nLL0/bDi1cyraSt A2qAMSaSdziQZBsWcQmV32Wp0lsWyhxEQy/hvKus+cRxpamTVG4m1nklu1UfdIsO4Gj7I82wpZx UhsW920j2IT7qsIvCf/mV6DzUa7uC6FF8bQUFCxAIY68Uo1r1dvJ6gDfjglTbT1Q5gWatDB4c4+ PfgfgrKVwBbk9X8DmIrahoScYQseoW4OZXM9/CHKLk+lkFK4rGyBj4JPwrCibGVTq1nQ4aK5WCi m6BMQwnODtgY6znVlOGl/4tKidnfxh/TCkd0XgY1OcP80PhSiN6AISU2830f0F9dT6ryU2LLncU jc0HTi/IFhYBPTuX4czPDl9ivSng/OpD8tHWRkxf11+RxY2jPA2kjKLbe4mhzOcMytgN5pmzDp X-Received: by 2002:a05:7022:a82:b0:11b:9386:a3c8 with SMTP id a92af1059eb24-1244a7690f2mr13531760c88.41.1768939845915; Tue, 20 Jan 2026 12:10:45 -0800 (PST) Received: from zcache.home.zacbowling.com ([2001:5a8:60d:bc9:4a3c:9f7c:8037:90c1]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-1244ad7201fsm21982990c88.7.2026.01.20.12.10.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 Jan 2026 12:10:44 -0800 (PST) Sender: Zac Bowling From: Zac To: sean.wang@kernel.org Cc: deren.wu@mediatek.com, kvalo@kernel.org, linux-kernel@vger.kernel.org, linux-mediatek@lists.infradead.org, linux-wireless@vger.kernel.org, linux@frame.work, lorenzo@kernel.org, nbd@nbd.name, ryder.lee@mediatek.com, sean.wang@mediatek.com, zac@zacbowling.com, zbowling@gmail.com Subject: [PATCH v6 00/13] wifi: mt76: stability fixes for deadlocks, NULL derefs, and race conditions Date: Tue, 20 Jan 2026 12:10:30 -0800 Message-ID: <20260120201043.38225-1-zac@zacbowling.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: References: 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 TLDR: This series addresses stability issues in both the MT7921 and MT7925 WiFi drivers that cause kernel panics, deadlocks, and system hangs on various systems using these drivers. This v6 series is rebased on Sean Wang's upstream deadlock fix already sent which is now included as patch 01/13. The remaining 12 patches are my stability fixes. Changes since v5: - Rebased on Sean Wang's fix for mt7925_roc_abort_sync deadlock (now patch 1) and removed my work around for the same issue as Sean's fix is better. - Fixed format string warning in patch 12: %lu -> %u for jiffies_to_msecs() return type (caught by kernel test robot) - Added patch 13: fix double wcid initialization race condition - removes duplicate mt76_wcid_init() call that occurred after rcu_assign_pointer(), which could cause list corruption, memory leaks, and race conditions (this is a pre-existing bug in upstream, not introduced by this series) Zac Bowling (12): wifi: mt76: fix list corruption in mt76_wcid_cleanup wifi: mt76: mt792x: fix NULL pointer and firmware reload issues wifi: mt76: mt7921: add mutex protection in critical paths wifi: mt76: mt7921: fix deadlock in sta removal and suspend ROC abort wifi: mt76: mt7925: add comprehensive NULL pointer protection for MLO wifi: mt76: mt7925: add mutex protection in critical paths wifi: mt76: mt7925: add MCU command error handling wifi: mt76: mt7925: add lockdep assertions for mutex verification wifi: mt76: mt7925: fix MLO roaming and ROC setup issues wifi: mt76: mt7925: fix BA session teardown during beacon loss wifi: mt76: mt7925: fix ROC deadlocks and race conditions wifi: mt76: mt7925: fix double wcid initialization race condition Sean Wang (1): wifi: mt76: mt7925: fix potential deadlock in mt7925_roc_abort_sync drivers/net/wireless/mediatek/mt76/mac80211.c | 10 + drivers/net/wireless/mediatek/mt76/mt76.h | 1 + drivers/net/wireless/mediatek/mt76/mt7921/mac.c | 2 + drivers/net/wireless/mediatek/mt76/mt7921/main.c | 28 ++- drivers/net/wireless/mediatek/mt76/mt7925/mac.c | 8 + drivers/net/wireless/mediatek/mt76/mt7925/main.c | 303 ++++++++++++++++++++--- drivers/net/wireless/mediatek/mt76/mt7925/mcu.c | 48 +++- drivers/net/wireless/mediatek/mt76/mt7925/pci.c | 2 + drivers/net/wireless/mediatek/mt76/mt792x.h | 7 + drivers/net/wireless/mediatek/mt76/mt792x_core.c | 27 +- 10 files changed, 390 insertions(+), 46 deletions(-) -- 2.52.0