]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
net: dsa: microchip: Fix a link check in ksz9477_pcs_read()
authorDan Carpenter <dan.carpenter@linaro.org>
Fri, 31 Oct 2025 13:05:01 +0000 (16:05 +0300)
committerJakub Kicinski <kuba@kernel.org>
Thu, 6 Nov 2025 01:58:51 +0000 (17:58 -0800)
The BMSR_LSTATUS define is 0x4 but the "p->phydev.link" variable
is a 1 bit bitfield in a u32.  Since 4 doesn't fit in 0-1 range
it means that ".link" is always set to false.  Add a !! to fix
this.

[Jakub: According to Maxime the phydev struct isn't really
used and we should consider removing it completely. So not
treating this as a fix.]

Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Link: https://patch.msgid.link/aQSz_euUg0Ja8ZaH@stanley.mountain
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/dsa/microchip/ksz9477.c

index d747ea1c41a79319ba736eea94552baa106296a7..cf67d6377719456663fa31762841788d802e3b53 100644 (file)
@@ -244,7 +244,7 @@ static int ksz9477_pcs_read(struct mii_bus *bus, int phy, int mmd, int reg)
                                p->phydev.link = 0;
                        }
                } else if (reg == MII_BMSR) {
-                       p->phydev.link = (val & BMSR_LSTATUS);
+                       p->phydev.link = !!(val & BMSR_LSTATUS);
                }
        }