drivers/net/phy/micrel.c | 1 + 1 file changed, 1 insertion(+)
lanphy_write_reg_data() does not advance the data pointer while iterating
over the register table. As a result, it writes the first entry num times
and leaves the remaining errata registers unconfigured.
Single-entry tables are unaffected, but tables with multiple entries
leave every entry after the first unapplied.
Advance the data pointer after each successful write so every table entry
is applied in order.
Fixes: c8732e933925 ("net: phy: micrel: lan8842 errata")
Cc: stable@vger.kernel.org
Signed-off-by: Abhishek Ojha <abhishek.ojha@savoirfairelinux.com>
---
drivers/net/phy/micrel.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/phy/micrel.c b/drivers/net/phy/micrel.c
index ae830781824b..5c8461db7b4b 100644
--- a/drivers/net/phy/micrel.c
+++ b/drivers/net/phy/micrel.c
@@ -6344,6 +6344,7 @@ static int lanphy_write_reg_data(struct phy_device *phydev,
data->val);
if (ret)
break;
+ data++;
}
return ret;
--
2.43.0
On Wed, Sep 16, 2026 at 07:19:28PM -0400, Abhishek Ojha wrote:
> lanphy_write_reg_data() does not advance the data pointer while iterating
> over the register table. As a result, it writes the first entry num times
> and leaves the remaining errata registers unconfigured.
>
> Single-entry tables are unaffected, but tables with multiple entries
> leave every entry after the first unapplied.
>
> Advance the data pointer after each successful write so every table entry
> is applied in order.
>
> Fixes: c8732e933925 ("net: phy: micrel: lan8842 errata")
> Cc: stable@vger.kernel.org
> Signed-off-by: Abhishek Ojha <abhishek.ojha@savoirfairelinux.com>
Makes you wounder if the short_center_tap errata has any value.
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Andrew
© 2016 - 2026 Red Hat, Inc.