Subject: Re: [PATCH] net: usb: dm9601: fix wrong return value in dm9601_mdio_read

From: Simon Horman <[email-masked]>
Date: Tue, 27 Feb 2024 16:09:18 +0000

On Sun, Feb 25, 2024 at 12:20:06AM +0100, Javier Carrasco wrote:
> 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: 8f8abb863fa5 ("net: usb: dm9601: fix uninitialized variable use in dm9601_mdio_read")
> Signed-off-by: Javier Carrasco <[email-masked]>

I guess it would be nice if error values could be used,
but as you have described, that does not seem to be the case here.

Reviewed-by: Simon Horman <[email-masked]>