From nobody Sat Feb 7 17:19:59 2026 Received: from mail-pl1-f181.google.com (mail-pl1-f181.google.com [209.85.214.181]) (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 B3E532FD660 for ; Fri, 2 Jan 2026 20:03:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767384202; cv=none; b=Nv3Q+P4mC7celBnUJqDfJ2BFekdxxU0zaKntNt/nf3tXhCwk3AoPMm2rh25dnSJI1RWdFZkSCBCGRSSVZSKn0khGJ58UsTz/USuCwhLTvZLDa2C9WTHvWO65DxGfNxqz6WQ58ARyKil45hNwyPhhwrqZq0wlVongm2zJzlKMsdY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767384202; c=relaxed/simple; bh=M6Ock8BWADnZL2JWTWO6Lzh1vmLr6RD+DRXGyhEPElQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZHBB4BMq94wHjjH1mLxJIcSyzih7lcc/wW1WBvK5HkBygv8Fvvhg74Xfv1/XtyxG8Kxk8S6OJ6tJ688BYy4Q6ROw42rD1Zy4SanHq3eapeGQ/Nt35wkJl2rWmGP2DMKILmE/S2HGKZoMhCA/R9Ieqo+yrMXDy8CdDi9uvDqeeaw= 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=E4SO99XH; arc=none smtp.client-ip=209.85.214.181 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="E4SO99XH" Received: by mail-pl1-f181.google.com with SMTP id d9443c01a7336-2a07f8dd9cdso127428375ad.1 for ; Fri, 02 Jan 2026 12:03:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1767384200; x=1767989000; 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=uRB/GMkUOZQKL62/6S3QoUiStZiACBm9ZEli7ks4aAc=; b=E4SO99XHpOZe64sJPx1bABOiaQ60usw8LvGxs96bJw0m3XoJnF5+d0dQUj9edqgX3m e8HJY7uNAAMz80gCwz+XlICy2MIdiStGE90uV0RD4D7fsFv0awflEOERljagNTaDNfda FZgnONyO6+XUy+b9lG7N2rt3zlpiYjvmyy8Hc7ZdZ3GtjsNwGeqsLeRrlqcpmkyJGvDT fMtpUkWWdsl8k4FP9WB4LDexmjb8omYhHuo5/Z1N7jRxABvEhW51h8OcPi8mwu5RExU3 U4gOCxBvfIQ9Ujst7hu0LAzYKVa9RyzTNcgKlCl/c6/VoOv5644kcYgs5VZFn7fdyjg9 uhqg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767384200; x=1767989000; 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=uRB/GMkUOZQKL62/6S3QoUiStZiACBm9ZEli7ks4aAc=; b=Pnysb7BIwuwx+P3gVRz7pbi/w9P93rR8ERE4DdAVQgdmTX2QFK1LkBl4dSG/ysXrV9 A04Wkumsk7k/l8D5Dc6nA2ylUu5EGzS27TKgauiVWLDwB7GXOSF4YSysU4Vt7/l8Ago+ 5EAQJpQ2kNiaZlFKj+QwlsVbG3TCEh5oghwOyKOlSDDU9qxPD2QdiX+xMTPXJADiQmEY ga9Xja0cdYkL9ycfvCJbnsfgZglrt5Qi/5lCrAQIFva27ZgGdn4UVdCgnz10jbGpTG5j oC8XmMR3Fi5BAyB9j9PAHx6g2s2zDQHhltd2qy7JKwBS/jG9cWl+pD7ep4X7WfBCxt57 bNTA== X-Forwarded-Encrypted: i=1; AJvYcCXpoxbuu7VfUMpp3a6NGIqSgQk88m/wgYXJPZh6UdSIQ15vzLj8ZsqLhO1cRmeS6a7CB+j0OUppHL9y5KE=@vger.kernel.org X-Gm-Message-State: AOJu0YzJU7U0X8ue0nev/VqiQ4hynGrerr/gHnlx78IISdQPRSXouhQo +ycjQX8XmwLvwNtb7rRTe5Xh1MwAdEadcZwY2U/K+QeqP71phnrJNu7kHNZj+Aj8 X-Gm-Gg: AY/fxX6njvggi02O+yZiKgoYIu1rIIwoOdBde8J2yUXSojaaiOmlA8SKazc7G/weVdg R0ZldkVsben2rbXTuWZGc661A4slpQPIjxn3VK2YoASC5f8WZcUbbtuUgD3FAwY5QEKHPqAXUn+ 4FeENfENslxyRhaZzNFXCpETxcH9i/srDAA59HFKdVyzjDC3Uj/PjhtxGz8UpgbpkzlY52uAZyO iqI4xn2u5idCJeOJZra3+RipwK92YW3gT8Qxs0tcAs2ICU9qlmRPiHKBCmHDJBZtrpht5RvzbMb kZ2P5D0MMpRViiaaewllKWpJi3/k4m0xBpbAngIlmzJ1KN5PAdFHrNM4LBA+u1EBPQc2eLQO8yR 2Y2rBRFtYrbde7EzPxdlL6Xr+RvwTBAU1Wx4WGyKL/sZmGuBfUz7LhNpJWgq+Ye6tAT7iIuK5C9 owyHVS41aOLpQXSyJjWX+xiVeEGf0LnXYiysLOl0AFHwmYTnyzcfzg6vt1nLaP0lc= X-Google-Smtp-Source: AGHT+IFBSUfFL7mHg821Z4iXp+NFgdGr+i44ARHcNYNV/RBJ9bl+fL+NqsT3peNN1SqyHKAuIrBvVA== X-Received: by 2002:a05:7022:42a7:b0:121:a060:6d80 with SMTP id a92af1059eb24-121a06075f9mr28800779c88.25.1767384199803; Fri, 02 Jan 2026 12:03:19 -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.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 02 Jan 2026 12:03:19 -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] wifi: mt76: mt7925: fix kernel warning in MLO ROC setup when channel not configured Date: Fri, 2 Jan 2026 12:03:11 -0800 Message-ID: <20260102200315.290015-3-zbowling@gmail.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260102200315.290015-1-zbowling@gmail.com> References: <20260101062543.186499-1-zbowling@gmail.com> <20260102200315.290015-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: quoted-printable Content-Type: text/plain; charset="utf-8" mt7925_mcu_set_mlo_roc() uses WARN_ON_ONCE() to check if link_conf or channel is NULL. However, during MLO AP setup, it's normal for the channel to not be configured yet when this function is called. The WARN_ON_ONCE triggers a kernel warning/oops that makes the system appear to have crashed, even though it's just a timing issue. Replace WARN_ON_ONCE with regular NULL checks and return -ENOLINK to indicate the link isn't fully configured yet. This allows the upper layers to retry when the link is ready, without spamming the kernel log with warnings. Also add a check for mconf in the first loop to match the pattern used in the second loop, preventing potential NULL dereference. This fixes kernel oops reported during MLO AP setup on OpenWrt with MT7925E hardware. Signed-off-by: Zac Bowling --- mt7925/mcu.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/mt7925/mcu.c b/mt7925/mcu.c index bd38807e..b0bbeb5a 100644 --- a/mt7925/mcu.c +++ b/mt7925/mcu.c @@ -1337,15 +1337,23 @@ int mt7925_mcu_set_mlo_roc(struct mt792x_bss_conf *= mconf, u16 sel_links, for (i =3D 0; i < ARRAY_SIZE(links); i++) { links[i].id =3D i ? __ffs(~BIT(mconf->link_id) & sel_links) : mconf->link_id; + link_conf =3D mt792x_vif_to_bss_conf(vif, links[i].id); - if (WARN_ON_ONCE(!link_conf)) - return -EPERM; + if (!link_conf) + return -ENOLINK; =20 links[i].chan =3D link_conf->chanreq.oper.chan; - if (WARN_ON_ONCE(!links[i].chan)) - return -EPERM; + if (!links[i].chan) + /* Channel not configured yet - this can happen during + * MLO AP setup when links are being added sequentially. + * Return -ENOLINK to indicate link not ready. + */ + return -ENOLINK; =20 links[i].mconf =3D mt792x_vif_to_link(mvif, links[i].id); + if (!links[i].mconf) + return -ENOLINK; + links[i].tag =3D links[i].id =3D=3D mconf->link_id ? UNI_ROC_ACQUIRE : UNI_ROC_SUB_LINK; =20 @@ -1359,8 +1367,8 @@ int mt7925_mcu_set_mlo_roc(struct mt792x_bss_conf *mc= onf, u16 sel_links, type =3D MT7925_ROC_REQ_JOIN; =20 for (i =3D 0; i < ARRAY_SIZE(links) && i < hweight16(vif->active_links); = i++) { - if (WARN_ON_ONCE(!links[i].mconf || !links[i].chan)) - continue; + if (!links[i].mconf || !links[i].chan) + return -ENOLINK; =20 chan =3D links[i].chan; center_ch =3D ieee80211_frequency_to_channel(chan->center_freq); --=20 2.51.0