From nobody Mon Feb 9 19:25:55 2026 Received: from mail-dl1-f68.google.com (mail-dl1-f68.google.com [74.125.82.68]) (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 101DE3A7F78 for ; Tue, 20 Jan 2026 20:11:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.82.68 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768939873; cv=none; b=HLBlYsDLkJEfr++fBC/U6+EZ0zFEKPMgMXu206j9OsAKvzmXLEqUeJzl6ZcCVYFOddX1wMwBOawmDYsOWl9IjAY4QurliB3ADk08bzDg6W6tqEhSBVAWusRp/1hbdC2U7tUsjug/q7Dq36Xm4I/m2Pnvwf+T6HObO/AeQtQFqRw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768939873; c=relaxed/simple; bh=cJcXyjEZSUQDGUOvvl04ViXnS4Gd51j6mnYPp5zBgFI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ObBAoIbJA4OK0JIdu2CEozeNQv1xAs3Y+dnVDNlxDz+uXhi2It7Xcsy8EBbqSr5wZrQkLnUuw6h8x5GkejYtBmyMaAfE6+cS1evYChpZ0HuyRybnCm/ShD+C+EGhDJfu/rDIZ9uAukHkdB2uTMxfRDGe2F+Vkpe3vKIJ4DwnJc0= 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=NVr/EIx2; arc=none smtp.client-ip=74.125.82.68 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="NVr/EIx2" Received: by mail-dl1-f68.google.com with SMTP id a92af1059eb24-11f36012fb2so8414905c88.1 for ; Tue, 20 Jan 2026 12:11:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1768939868; x=1769544668; 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=Yt1mPPXw8aFoKYpC5Tia09ZY3lzzrV+SydYHdLpjRKk=; b=NVr/EIx2FKq/ZMv0F9t1uLX6L4SXttia7t1/nBEPrD7HdG/xHxdq4HhS9h8SoMhjWi RW7fVBRkuVhVtOkIm3potvXJOCnQuVo8r6wU6ddwI3dF8LRExk7YuyMy3m55AOXm/zcF J+jWgY2c+dxEtklWMSUmLDIQEa/OSI+MsmVR3upUJEr/tAHfDCde5+9rCFohCrGV3hpG k2CPUceBGO1ta/2fAQJlKijGqc2dBcqz3schVZFNp2ajQyFD4pchLKLUMtufvDvnbIaS 4CXEAirIY6gxCdBLwaGKjMDZJvbvCEu2fh2gG0AGguRcMMtfYPvyZ28erZo4SZZptDbx nsWA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768939868; x=1769544668; 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=Yt1mPPXw8aFoKYpC5Tia09ZY3lzzrV+SydYHdLpjRKk=; b=r2NXULvInSuTA5Ok0DMWFHW9VK10SBXRfLxcF5ZLZfzj+8YvcmVeuJQO4aiFf2Q+uZ WA/z8AlOUoNZKvbfUqr6suBteIOcFNpT0/F7yWTjsZOpG+mM1Z1jfu7H86Ipw76v5QuI TU7hss3RD32Py0pPyppXaQm7G3uhiqKbDe15n5SIfP24L4dNTCdMn1VBffEiizNke/R0 +3EmsXaXjH6LOPBKV4IU6GELctH91A9c82lzuvpxprkDbnh5skpyGs/DI0J+CzF2obUu EKSx+0oRqNn930MV00/ppOWhxaQZknw9bx7CpvTpv/cztwxz6ea93vV5+xMzUeNPBZPV EQ+Q== X-Forwarded-Encrypted: i=1; AJvYcCURyURINxBXfTN2Y1x/2SbrL3HpF1xkmLkWcdGYPdaQpiaEwsIupU1W1wS6B6cMI8tN9AwiL/v1ePYEgjY=@vger.kernel.org X-Gm-Message-State: AOJu0YzA/WjRfF6ts/RLS2Hddo/qYG5s/eYREyj/hah8V702khoIpUHB QCOhlhCI86q+93t43NV6YN9Wyz8xX8XELFOUsM/LHRZnYTadyPH5xUU2 X-Gm-Gg: AY/fxX6nfIS9ZSwfyKBv0kTKh2tgs1rDHozrjSkAIBmdRDj89aiJ4/8+r/Pnh6yp0sN l5Uf2AicvZ6CB+mKB9yqr0EPZ1YpI45vmx7+NRcVvCcvmF1XDF9P2EdINwg4PDjoaBwyp/pJq5q lflll0IjT5IA0by0syiJbZocCxQ9u5MBf59xqQ1kShBnX2N63pzyQLfNiZabfXhda5jxXQKMNHF h87uefGI2aUtvRiqEloW8ubRhQRGUGm/hWguqZUpRbKgba/JXTLqoJ+0mdpkfvZy9Flz83uSt+e 2hby8je34BOyPXxCuyYSNk0dBi1aIl70eKX4iRGvnOlpn+fo4Lvy6JTtWu7CfEaVc0C080wKyi7 AgB4xWlOXQEogpeOdTagbgLBEZKb3AbRKDGp2DyUlGO8FqcTXsM0WtJdhIAuyxvdkjp+hT4d82v bsfrK1G80mLZp9SE2yNZ5YLmLmrgi33t5ehPrra/zWCYVeIfSWiL4gdkpCclknCw== X-Received: by 2002:a05:7022:608a:b0:11e:3e9:3ea1 with SMTP id a92af1059eb24-1244b37fc20mr10744650c88.50.1768939868222; Tue, 20 Jan 2026 12:11:08 -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.11.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 Jan 2026 12:11:06 -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 09/13] wifi: mt76: mt7925: add lockdep assertions for mutex verification Date: Tue, 20 Jan 2026 12:10:39 -0800 Message-ID: <20260120201043.38225-10-zac@zacbowling.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260120201043.38225-1-zac@zacbowling.com> References: <20260120201043.38225-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 94ec62a4538a..1c58b0be2be4 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7925/mcu.c +++ b/drivers/net/wireless/mediatek/mt76/mt7925/mcu.c @@ -1532,6 +1532,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 @@ -2047,6 +2049,8 @@ int mt7925_mcu_sta_update(struct mt792x_dev *dev, struct mt792x_sta *msta; struct mt792x_link_sta *mlink =3D NULL; =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); @@ -2853,6 +2857,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