From nobody Mon Aug 24 04:18:04 2026 Received: from mail-pl1-f172.google.com (mail-pl1-f172.google.com [209.85.214.172]) (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 BE2743B1006 for ; Sun, 16 Aug 2026 17:48:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786902531; cv=none; b=oTQnmFhPpaPyk7gxqBmwQdlylU3Z3M61ceCU5Am4hDc9mrAYbdWV0MajqUYjZOCbI8sYSWAWWJUG2Xjc5RipAhst1vn5vuN2S2oONwlQxDI6jDRGwTx5PuYsGcsZBrqC5B93GhzrG4BMuhGrGfvx9HAAZA04H7AjxfP0cyRBChc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786902531; c=relaxed/simple; bh=REzPd5tdBRbGao7/2vlngZA2mtzJ+akj5jfwnqD9A4Y=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=OISkiG7SlMVeGk16XmJsuCfjgnBZbNHbkiIbljxU4Ic6WGWVcaphzlhGW5HDK5tOMA1pr7uWJoxKCtSRvzQhyal0WIFVroxyJZf+br2jhJSbicrVlrSrPWTcyBchTJ3kuinp233uDCQARSWqyapGy8gY3hOvmnFztwl4QHibPJk= 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=ELHDaGOt; arc=none smtp.client-ip=209.85.214.172 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="ELHDaGOt" Received: by mail-pl1-f172.google.com with SMTP id d9443c01a7336-2ce7d2adef4so44523725ad.3 for ; Sun, 16 Aug 2026 10:48:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786902529; x=1787507329; 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:content-type; bh=FflrZPo0SzDXc4fxWnUV1IFsVK9UvRmYYioklHORaLU=; b=ELHDaGOtHxfT6++jk/gN3LDuD0N2ou0C55sK3zzwUKSVoZ46xaCzZsKKkw4UmR2DBt LR7DSXG8S7s29MHv4R3vJ5lDLu/EnGH0kVfjwKblLMhfKlPu9NtGFUKv8Po/QOqeBZCL sB0T5bAlxNkX4we8gMyCwHq152bT6Y/frtO0vRqUwW255XWdIhkwSGtLSq5M3IvnXcOu pai93QDy3Z2X/uruIuDwTTkMCEEVLthua+LJcGrIlx68F1SwoifqIWJGBbHRvgjE7jvV B6BpdKPt7LIcIYHrxmB1fIr15Bq43fW9yIcKfpo0LSwEs2nXfbSkAw1np8K+WOLidQSX xHSA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786902529; x=1787507329; 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:content-type; bh=FflrZPo0SzDXc4fxWnUV1IFsVK9UvRmYYioklHORaLU=; b=hbkyqDm/EX5VAc5oz2oD1XrvQMn2o5/osnGn6JJ7Ox+/yS2ecxTnyh1vcqT9jGNnxc an7ky6XTB2g6d7QGh6KV8uN6Bzq4HlQtdrTPQUmPDdtNiaoxGN8QuD12iOe9xURbVK1j MhWQGrOtoRfuBDil5g//vB+pkqR3nfQxrZ10JCqYD0Qc56iKh+cPJVrr7E579UUN3Huw avOW7lyzbB/qu1pScnsVqZMk+w7Z6NKFfMsW5yqshSYcJA2scOIKt78VSaN3pIAleaIJ EX1Grk9x7tK/B8IWy3OdpQqqpyL3Ka6K73X9rFWNcdeC84qUzFJzR6eJjzrbl39OScpz /dbw== X-Forwarded-Encrypted: i=1; AHgh+RodKoHloOkbNgI2XKrHsFocEcmEekHloMuYgrzHw/C+IfaTPjWwM+75REUnCOOSe/8/uz+zNQrnwOUxsr8=@vger.kernel.org X-Gm-Message-State: AOJu0Yw6sielJTW9nV+TSiwuRApJZ5jkyKUPVvpBNucMGMXlZFJ8Uekz n8xoNrNFyjykhrVtq1nx+vCkXyQpcxZjXo2knZk4qOQ+xxp4rgnbENpR X-Gm-Gg: AR+sD13EijkAq6J35f95rAUF/Z4VOZRVnx/Lig+bZDVS2odwfSvgG0s+OopciycdgDY 2iwtr2iAbHy/ChA5rxW3gcnbm1P4BMP6hgRLZ6Xh3PJw9EpxPMAhQAc8AojbPrnm/MZiGaec3Cm p7kCI+PHcgL3bTwtx9W4Og5rnMp0XrBJkgsNCXxqG9IYS5nKghmUi0e2CyCSGnX8AW6G5EJVUrd KAimZQGgfvpRMhSp8EN5N0gg9J9dSLjlpBBrGv1lY0CvDVvo13z2u91whyQR8GmEKMe9yBj8Acd O7gPl0lqGiaORJXcVDI6MI4b9IVSb65YU8YWgt+Y1G4CvYIPKbjRQ9wCM6g0PH36fJUBb/rSiIn 7ZpVBCedRe+dbpJ2V/FewExQnsIw3Lu6pxIJ0B3s3eYaFbgj0aNKShIykwGSzO2dFaJnlU1aIBD YspwkSAvUXsQhy3XezFur+ZSvE18KX00pck3OaQm4q/jbUL+HrCgnhaVKAr4oe9mKGrIu6vuU8Z A/iH1Pk8VjLh9m0EtOUdZBdERqnqFaEpWvuyNLZ9aUhkWJm6i+8buvufQekPn0MRbuBcVkRoO8E AukLjh6V4iSVY8E+l270nu676JNu59xeKOBGn8410vOWy6SVzHpdYO8nzjDwlwEOYY9IoV2ebN1 OUBmRx20vjh4KrSIVWCNtLrZ2Bp3V3UPDJAKkGryHBghRBNmG X-Received: by 2002:a05:6a21:3384:b0:3c3:64cb:9b99 with SMTP id adf61e73a8af0-3cc719c78e4mr25685428637.6.1786902528936; Sun, 16 Aug 2026 10:48:48 -0700 (PDT) Received: from localhost.localdomain ([101.251.7.10]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-1413889bca5sm46408707c88.12.2026.08.16.10.48.44 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Sun, 16 Aug 2026 10:48:48 -0700 (PDT) From: Laxman Acharya Padhya To: Felix Fietkau Cc: Lorenzo Bianconi , Ryder Lee , Shayne Chen , Sean Wang , Deren Wu , Ming Yen Hsieh , Mikhail Gavrilov , linux-wireless@vger.kernel.org, linux-mediatek@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH] wifi: mt76: mt7921: skip unknown CLC firmware records Date: Sun, 16 Aug 2026 23:33:40 +0545 Message-ID: <20260816174841.1918-1-acharyalaxman8848@gmail.com> X-Mailer: git-send-email 2.51.2 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: quoted-printable Content-Type: text/plain; charset="utf-8" Treat an out-of-range CLC index as newer firmware rather than a malformed image. linux-firmware 20260810 ships MT7922 records with idx 3, and rejecting them made mt7921e fail to probe. Keep the record-length checks, and report those as errors so a truncated table is visible instead of a silent retry loop. Fixes: 9417c5818a01 ("wifi: mt76: mt7921: validate CLC firmware records") Reported-by: Mikhail Gavrilov Signed-off-by: Laxman Acharya Padhya Tested-by: Mikhail Gavrilov --- drivers/net/wireless/mediatek/mt76/mt7921/mcu.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/net/wireless/mediatek/mt76/mt7921/mcu.c b/drivers/net/= wireless/mediatek/mt76/mt7921/mcu.c index a118a301564c..40546005c743 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7921/mcu.c +++ b/drivers/net/wireless/mediatek/mt76/mt7921/mcu.c @@ -477,18 +477,23 @@ static int mt7921_load_clc(struct mt792x_dev *dev, co= nst char *fw_name) =20 for (offset =3D 0; offset < len; offset +=3D clc_len) { if (len - offset < sizeof(*clc)) { + dev_err(mdev->dev, "Invalid CLC record\n"); ret =3D -EINVAL; goto out; } =20 clc =3D (const struct mt7921_clc *)(clc_base + offset); clc_len =3D le32_to_cpu(clc->len); - if (clc_len < sizeof(*clc) || clc_len > len - offset || - clc->idx >=3D ARRAY_SIZE(phy->clc)) { + if (clc_len < sizeof(*clc) || clc_len > len - offset) { + dev_err(mdev->dev, "Invalid CLC record\n"); ret =3D -EINVAL; goto out; } =20 + /* Newer firmware may add records this driver does not use yet */ + if (clc->idx >=3D ARRAY_SIZE(phy->clc)) + continue; + /* do not init buf again if chip reset triggered */ if (phy->clc[clc->idx]) continue; --=20 2.51.2