From nobody Mon Feb 9 13:58:12 2026 Received: from mail-dy1-f194.google.com (mail-dy1-f194.google.com [74.125.82.194]) (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 8A0F93164A1 for ; Fri, 16 Jan 2026 01:05:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.82.194 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768525545; cv=none; b=UlQEhQ6+XcoTa7XYcydva9tAWInwk9PrcnFDZh0FRDqmAv8ruPNLkW6tU1pZyonHjw+l6xsKIopMHyDzJMUShjwj8yDvcN7NopJSdOW/+v6yLgHWw0M4rvr7uaTgSXzieVxOgBO2QnU49d2baU3rIBjko050dGQHtB7bDCQsOuo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768525545; c=relaxed/simple; bh=w6QN5tnbV21n88GBqrBPSA7O7w2Y8eDZmrW+Y9oHKq8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qZaYE5EivhCYVTjH7MxvGzb4j23ekhGzjGU1fyXu2dx4bGoHS+du3jFqO3yDCfWYL7rnnSJwiJpLS7liC2CPN+KuFdpf9drBTlztqOgnbiaL55tjxdHy4xqzvWkoq4DXV59GqUAnDk5S9dBJVjsH0zhro1gFOtIjpu3e0huCVTs= 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=GcEu1HNb; arc=none smtp.client-ip=74.125.82.194 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="GcEu1HNb" Received: by mail-dy1-f194.google.com with SMTP id 5a478bee46e88-2b6ae4c2012so847362eec.0 for ; Thu, 15 Jan 2026 17:05:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1768525540; x=1769130340; 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=7ZFGFJGnMesEgV/ggwEQUIQPbrKFKaXQBFGLJsUOfUw=; b=GcEu1HNbDTvEB0srfk5NFk/8KFEM53CARuYsm4d6RsxWJpS5WXL4fgx9W1wkU8d4nG STP/73G9JBVEJ1WgSk0C3zFVNY5iGW2zmatQI2REfI2Tb9RnYxO4mRqluJJxNUxSo1BT VmK6DvViFm4RjipIb21OtPpO77IlKM9jfUaKHuqSfpwAl5zRh+1gVlx8/Jsq8gywfamN oqXQfEcC5w0hjP2k7bvuirQYuyNDwT1qZCWX52i0sbq2PZ9AaydqBW7FbTC7G1aTlmfY W9LloFQSrQVPMFQ9pAGkk6yvoukiMRhFflhnB37iVM9bqCML0CLXHc/uLDm1OzLpa0qG BWxA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768525540; x=1769130340; 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=7ZFGFJGnMesEgV/ggwEQUIQPbrKFKaXQBFGLJsUOfUw=; b=cF5GobcuSSFLQohcCMQ1uKbcjthzNs2dh6cVTO9USpD4fOEigeU1eEVPbtPdgqBaVp 9lExvuLj5O+Wywpfo8n0BfXdGdgzz/HifvQxAbiYV5Z7GHk+rTGHPW/Vj47PJipOhuie M7cCe5vQzn5neHH8DfRzSpTOqRDGJfETXwRKvGtzi+7/PZ2jcAMlWJsSnrNX7Dx65oRQ OWox9uqbtCRk7w4MYTLQj1HZQK0aMeZ0gQeWEiLTPdUDJyk6sbkcHKWMyTNImlbujxLL duc9sr2UsA1I9hshfxJ1798KVnQk6QzmVEVDFnUIHtXekGjVWd66r4BpwRuWx0AWuZan W/rg== X-Forwarded-Encrypted: i=1; AJvYcCVAKn0cLfU3qlkD64JulamEFbO3PYJdsWi8mGST1ieQth4p6gZyIacWu+i2IZTbGyBgkHGLRrwJbOK/iHw=@vger.kernel.org X-Gm-Message-State: AOJu0YzxK9FKU7weN1RfbMiePeru8++b8CsqX036vNGIreDELJ6YRTfl Lx3Xv80PpSdmloeoHr/jhNRPRB3evstOHvxESbUhjgUUgmMieMKc5w3H X-Gm-Gg: AY/fxX4dYCjxckmaNja7cVncRbfr/veTYO/qjkMc+OY+3oMWEqADMn9nPtkjpab3h6Y NKP0yHGVIiraMA33V/CAi5j/aklfif17TDi0hftil9XjQVJnHHJGvpJJmA/tt+kZkrvf9iNHYVz yXkKDULfLfuF1wqgHuL9mI8iVN4viFg+sq8YKHXRpFyCbnKS2Bmiqu/Lv3sL15pmduTC47UrQYE bQP8bVuU1Sj9ZESlZh8LZEFTf7Y7qieYszE8TBcTIiyqjmoSvefIgXD/xTO8CMq3EQ78AYnXkiv QXTOrlpKp7w8f93jdxeVNNyY4VaDw/0S1YwSCetrclp7H48pW4rKl2uWcIGY12PMJ9bu+SMXXZL S6Ydl60/PDf+iu6RWVfQIgsmVVkTXHzWCdmMFX2YqLd2eqjIxzEGYhX+ogy/82LCNthjbWxFI8E haQkIaFGgow8njuit3Z7Nq4gZZvun++MyzAHEUucbMDwE9PwM/l2Pjh2uhkvB5uQ== X-Received: by 2002:a05:7300:cc0a:b0:2b0:56fd:4b67 with SMTP id 5a478bee46e88-2b6b3f074e7mr1271641eec.12.1768525539493; Thu, 15 Jan 2026 17:05:39 -0800 (PST) Received: from zcache.home.zacbowling.com ([2001:5a8:60d:bc9:f1d2:502c:a6ff:5556]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2b6b367cbc9sm1019884eec.32.2026.01.15.17.05.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Jan 2026 17:05:38 -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, lorenzo@kernel.org, nbd@nbd.name, linux@frame.work, ryder.lee@mediatek.com, sean.wang@mediatek.com, Zac Bowling , Zac Bowling Subject: [PATCH v4 11/21] wifi: mt76: mt7925: add lockdep assertions for mutex verification Date: Thu, 15 Jan 2026 17:05:09 -0800 Message-ID: <20260116010519.37001-12-zac@zacbowling.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260116010519.37001-1-zac@zacbowling.com> References: <20260116010519.37001-1-zac@zacbowling.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Zac Bowling Add lockdep_assert_held() calls to critical MCU functions to help catch mutex violations during development and debugging. This follows the pattern used in other mt76 drivers (mt7996, mt7915, mt7615). Functions with new assertions: - mt7925_mcu_add_bss_info(): Core BSS configuration MCU command - mt7925_mcu_sta_update(): Station record update MCU command - mt7925_mcu_uni_bss_ps(): Power save state MCU command These functions modify firmware state and must be called with the device mutex held to prevent race conditions. The lockdep assertions will trigger warnings at runtime if code paths exist that call these functions without proper mutex protection. This aids in detecting the class of bugs fixed by patches in this series. Signed-off-by: Zac Bowling --- drivers/net/wireless/mediatek/mt76/mt7925/mcu.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/net/wireless/mediatek/mt76/mt7925/mcu.c b/drivers/net/= wireless/mediatek/mt76/mt7925/mcu.c index d61a7fbda7..958ff9da9f 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7925/mcu.c +++ b/drivers/net/wireless/mediatek/mt76/mt7925/mcu.c @@ -1527,6 +1527,8 @@ int mt7925_mcu_uni_bss_ps(struct mt792x_dev *dev, }, }; =20 + lockdep_assert_held(&dev->mt76.mutex); + if (link_conf->vif->type !=3D NL80211_IFTYPE_STATION) return -EOPNOTSUPP; =20 @@ -2037,6 +2039,8 @@ int mt7925_mcu_sta_update(struct mt792x_dev *dev, struct mt792x_sta *msta; struct mt792x_link_sta *mlink; =20 + lockdep_assert_held(&dev->mt76.mutex); + if (link_sta) { msta =3D (struct mt792x_sta *)link_sta->sta->drv_priv; mlink =3D mt792x_sta_to_link(msta, link_sta->link_id); @@ -2843,6 +2847,8 @@ int mt7925_mcu_add_bss_info(struct mt792x_phy *phy, struct mt792x_link_sta *mlink_bc; struct sk_buff *skb; =20 + lockdep_assert_held(&dev->mt76.mutex); + skb =3D __mt7925_mcu_alloc_bss_req(&dev->mt76, &mconf->mt76, MT7925_BSS_UPDATE_MAX_SIZE); if (IS_ERR(skb)) --=20 2.52.0