Message ID | 989915c5f8887e4a0281ed87325277aa8c997291.1640115493.git.paskripkin@gmail.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [1/2] asix: fix uninit-value in asix_mdio_read() | expand |
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@lunn.ch> > Signed-off-by: Pavel Skripkin <paskripkin@gmail.com> > --- > 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
On 12/21/21 22:44, Andrew Lunn wrote: > 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@lunn.ch> >> Signed-off-by: Pavel Skripkin <paskripkin@gmail.com> >> --- >> 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 ? > Ah, yes, I forgot to run chechpatch on 2nd one, sorry. Will fix in v2 > I would also replace the 30 with a #define, both here and in the for > loop. Will fix in v2 as well. Thanks for review! With regards, Pavel Skripkin
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; } static void reset_asix_rx_fixup_info(struct asix_rx_fixup_info *rx)
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@lunn.ch> Signed-off-by: Pavel Skripkin <paskripkin@gmail.com> --- drivers/net/usb/asix_common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)