Re: [PATCH 2/2] asix: fix wrong return value in asix_check_host_enable()

From: Andrew Lunn
Date: Tue Dec 21 2021 - 14:44:27 EST


On Tue, Dec 21, 2021 at 10:40:05PM +0300, Pavel Skripkin wrote:
> If asix_read_cmd() returns 0 on 30th interation, 0 will be returned from
> asix_check_host_enable(), which is logically wrong. Fix it by returning
> -ETIMEDOUT explicitly if we have exceeded 30 iterations
>
> Fixes: a786e3195d6a ("net: asix: fix uninit value bugs")
> Reported-by: Andrew Lunn <andrew@xxxxxxx>
> Signed-off-by: Pavel Skripkin <paskripkin@xxxxxxxxx>
> ---
> drivers/net/usb/asix_common.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/usb/asix_common.c b/drivers/net/usb/asix_common.c
> index 06823d7141b6..8c61d410a123 100644
> --- a/drivers/net/usb/asix_common.c
> +++ b/drivers/net/usb/asix_common.c
> @@ -83,7 +83,7 @@ static int asix_check_host_enable(struct usbnet *dev, int in_pm)
> break;
> }
>
> - return ret;
> + return i >= 30? -ETIMEDOUT: ret;

I think the coding style guidelines would recommend a space before the ?

I would also replace the 30 with a #define, both here and in the for
loop.

Andrew