]> www.infradead.org Git - users/hch/dma-mapping.git/commitdiff
net: phy: dp83869: fix memory corruption when enabling fiber
authorIngo van Lil <inguin@gmx.de>
Wed, 2 Oct 2024 16:18:07 +0000 (18:18 +0200)
committerJakub Kicinski <kuba@kernel.org>
Thu, 3 Oct 2024 22:39:47 +0000 (15:39 -0700)
When configuring the fiber port, the DP83869 PHY driver incorrectly
calls linkmode_set_bit() with a bit mask (1 << 10) rather than a bit
number (10). This corrupts some other memory location -- in case of
arm64 the priv pointer in the same structure.

Since the advertising flags are updated from supported at the end of the
function the incorrect line isn't needed at all and can be removed.

Fixes: a29de52ba2a1 ("net: dp83869: Add ability to advertise Fiber connection")
Signed-off-by: Ingo van Lil <inguin@gmx.de>
Reviewed-by: Alexander Sverdlin <alexander.sverdlin@siemens.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Link: https://patch.msgid.link/20241002161807.440378-1-inguin@gmx.de
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/phy/dp83869.c

index d7aaefb5226b62ad5de3c3783c189b8f45b1a7c2..5f056d7db83eed23f1cab42365fdc566a0d8e47f 100644 (file)
@@ -645,7 +645,6 @@ static int dp83869_configure_fiber(struct phy_device *phydev,
                     phydev->supported);
 
        linkmode_set_bit(ETHTOOL_LINK_MODE_FIBRE_BIT, phydev->supported);
-       linkmode_set_bit(ADVERTISED_FIBRE, phydev->advertising);
 
        if (dp83869->mode == DP83869_RGMII_1000_BASE) {
                linkmode_set_bit(ETHTOOL_LINK_MODE_1000baseX_Full_BIT,