Skip to content

Commit c68b2c9

Browse files
javiercarrascocruzkuba-moo
authored andcommitted
net: usb: dm9601: fix wrong return value in dm9601_mdio_read
The MII code does not check the return value of mdio_read (among others), and therefore no error code should be sent. A previous fix to the use of an uninitialized variable propagates negative error codes, that might lead to wrong operations by the MII library. An example of such issues is the use of mii_nway_restart by the dm9601 driver. The mii_nway_restart function does not check the value returned by mdio_read, which in this case might be a negative number which could contain the exact bit the function checks (BMCR_ANENABLE = 0x1000). Return zero in case of error, as it is common practice in users of mdio_read to avoid wrong uses of the return value. Fixes: 8f8abb8 ("net: usb: dm9601: fix uninitialized variable use in dm9601_mdio_read") Signed-off-by: Javier Carrasco <[email protected]> Reviewed-by: Simon Horman <[email protected]> Reviewed-by: Peter Korsgaard <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
1 parent 1ce7d30 commit c68b2c9

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

drivers/net/usb/dm9601.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,7 @@ static int dm9601_mdio_read(struct net_device *netdev, int phy_id, int loc)
232232
err = dm_read_shared_word(dev, 1, loc, &res);
233233
if (err < 0) {
234234
netdev_err(dev->net, "MDIO read error: %d\n", err);
235-
return err;
235+
return 0;
236236
}
237237

238238
netdev_dbg(dev->net,

0 commit comments

Comments
 (0)