From nobody Mon Sep 28 23:07:08 2026 Received: from mail-pj1-f43.google.com (mail-pj1-f43.google.com [209.85.216.43]) (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 AD3BE1E5714 for ; Sat, 15 Aug 2026 15:17:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786807040; cv=none; b=gBnfy3k8VMZWly9bpdAxvJSFNBnTXySXKtGT/jfnXhpKmHwJqUU8mWOSNt8nKfIIkO/KHcluVDQlARmOpSulCISbPKY31QqRikVLzoDk6FlUe/Gn9Nh12WnCJtfA4Jvk0RDyh13R3x3YT6WDJMF05FB3PSr+2+6jw1xkOD5Fj/c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786807040; c=relaxed/simple; bh=hhD2mGryTKedERHeusMb7zNvptKpXuKvxwJCD2TDNT4=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=fkYGmAkJ8+GkIa/hADkoPq6He58f2fBBARCoXxIKuzxFiMB+Qh357M/3n2c8bKLY/eM+kuJoilws3gh0yapj8AxuO60V7MLcj5o2EMizn/ZdQ2vnM47UWnc8/6ZU+QHkwJ6eBiU9ud9a/FelwG+BsjzRhes0c3+a13XcEJdAwIg= 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=VxZAwgSD; arc=none smtp.client-ip=209.85.216.43 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="VxZAwgSD" Received: by mail-pj1-f43.google.com with SMTP id 98e67ed59e1d1-39266382df6so1657417a91.3 for ; Sat, 15 Aug 2026 08:17:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786807039; x=1787411839; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=xU5wuQl05hqAdfOQzR7Ny4Xs5wY+Yxu1qGS7dRLraAA=; b=VxZAwgSD7thkn4Nm9amxL2AMJe3hIATPOJFJ7x2GJ3WK6H2U3w6p9ojDncGFAhB9Ku 0icuSL5/frlqdI2XJENr7lVl6Upct7lS+k/FovrgQseTanAcz2Id7hpXwofswOzpSIYG GQm5Zv4oyPMQWHGxmxlQ/M1a2zUWatnqBDNYc1RdE1D/hAhLbgAwu96kv5wP4wIfO60M CDrHWr0AnnP92e9YLWzIPFiT/iRZ4tpaK7ag1Mvzslobq5qMwaEzcbYrlkpj4NePqLcA YYicm4qk/5yOyDLaP+fOVlRg83bYTs5WldCePzuoWS3UFl2kFef/hkzZ4fZmb0bZyw7J /xfQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786807039; x=1787411839; h=content-transfer-encoding:mime-version: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=xU5wuQl05hqAdfOQzR7Ny4Xs5wY+Yxu1qGS7dRLraAA=; b=KKDLne0Ygwvh44CNZfrhdN4Hd0RRSm5F02I4RCcg3N/YLz2WYV035sB/dXkL8Zh6nA YcprpHvH9MxPqQbtdHfQjmOmXT9866OcPik1IDJQWNtLxOzqVq4ckFL7SwWNlSFl9Lyh iPbQsxXMO+KGD8oeUkkI8/ijUZIiad/c9J7mOQU6IAPIB/63GfAVLTsCQt3tCqyMnsIU x+/inAcIDdOGz0yOfyYIr9qSMtoG+mVZ7UgizcfOxtO1xeINtMAyV3ji7hAL8198zvd8 GKL3rWRI8pYp1CCASCCEFZwBRgLQ5nthypFsn4OOild7qOESzbd0tHlKfadcHSOSfLSf 9IBg== X-Forwarded-Encrypted: i=1; AHgh+Rq1GFObMGT1WdGF7tD8UuD2cWVa0mluXgyB/vkgZcv625WX1WSRtAmIjbUxr2KiYRBdgM45ZkndAigOipY=@vger.kernel.org X-Gm-Message-State: AOJu0YzUqUztzDPmZWSLR3YwXpVbAB4njfF0i+c8gjl/WgBr4gKhnTsv ImbuAhLpvjbNQbognV/7IjcjGw8D3Xcnye100i9HIofviYxa69hn314Corla0A== X-Gm-Gg: AR+sD100X9cNWLROewH3AsToAJQyR8/Y3wUl8saS/jQFNtW/bNTAWJiR82MsZaIcE1b M6MKsl2amHCZFddCvuQK+tHQapvOfbfR51McPUYXZ5zQ+SLTRzB4/JyoYERDdsrDD+DgJhb4Khd 8CCVymlsWJQls7EL0FhIRdjjwLVXklUWIb9faSNB8md4WJQwDIE2pcpQ8WFwiDpzbUEkGQv/Gxv QjHgUWDb4CHHZhQe1m6B5HytE/OU0vDYa+nt5YjGeDxYkAjfD/jBv3zdGH5AvVP7YJD9ftyTwFU +n408tY/1BE71BFXFtfbO6AZ6pT8ZTRNfztbJH61UbCaaLhg/wJ5/qr1T8Z1c+55J3/3TLXTdPW ILYH5yea9t3mqi/xKKZZ2RbTqUWobG5HU8AEbgYhyyNsZ0Q8lJRGkaAXEZtckioLEORodGcF+TI FptKPhU1yK1tRlxdCOlmA7NCh56c/q3+ULhMuH6+jZA9bpc8aX7XT7vYhSFdQ33i0OBacSKgZZB itx2cRu X-Received: by 2002:a17:90b:4d85:b0:37f:fb1d:63fa with SMTP id 98e67ed59e1d1-3933b8b5de6mr14246772a91.15.1786807039021; Sat, 15 Aug 2026 08:17:19 -0700 (PDT) Received: from haichao.tail057a43.ts.net ([2001:da8:e000:1206:5225:2a2e:8e7c:13a7]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-394e920ba18sm6515825a91.0.2026.08.15.08.17.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 15 Aug 2026 08:17:18 -0700 (PDT) From: Ruoyu Wang To: Andrew Lunn , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Ruoyu Wang Subject: [PATCH net-next v2] net: dsa: mv88e6xxx: Avoid uninitialized value on MDIO read error Date: Sat, 15 Aug 2026 23:17:13 +0800 Message-ID: <20260815151713.3757248-1-ruoyuw560@gmail.com> X-Mailer: git-send-email 2.51.0 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" mv88e6xxx_mdio_read() applies the internal PHY model-number workaround before returning a Clause 22 read error. Since the PHY read may leave val untouched on failure, the workaround can consume an uninitialized value. Return the PHY read error immediately after dropping the register lock. Successful reads continue through the workaround and return val as before. This issue was found by a static analysis checker and confirmed by manual source review. Assisted-by: unnamed:deepseek-v4-pro typestate Signed-off-by: Ruoyu Wang --- Changes in v2: - Return immediately on PHY read errors. - Target net-next and drop the Fixes tag, as requested. - Add the Assisted-by tag. v1: https://lore.kernel.org/r/20260814134006.1386372-1-ruoyuw560@gmail.com/ --- drivers/net/dsa/mv88e6xxx/chip.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/c= hip.c index 80b877c74513d6..432285e2881715 100644 --- a/drivers/net/dsa/mv88e6xxx/chip.c +++ b/drivers/net/dsa/mv88e6xxx/chip.c @@ -3769,6 +3769,9 @@ static int mv88e6xxx_mdio_read(struct mii_bus *bus, i= nt phy, int reg) err =3D chip->info->ops->phy_read(chip, bus, phy, reg, &val); mv88e6xxx_reg_unlock(chip); =20 + if (err) + return err; + /* Some internal PHYs don't have a model number. */ if (reg =3D=3D MII_PHYSID2 && !(val & 0x3f0) && chip->info->family < ARRAY_SIZE(family_prod_id_table)) { @@ -3777,7 +3780,7 @@ static int mv88e6xxx_mdio_read(struct mii_bus *bus, i= nt phy, int reg) val |=3D prod_id >> 4; } =20 - return err ? err : val; + return val; } =20 static int mv88e6xxx_mdio_read_c45(struct mii_bus *bus, int phy, int devad, --=20 2.51.0