Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1218816 > unrolled thread

[PATCH] lan78xx: Fix ladv/radv error handling in lan78xx_link_reset()

Started byGeert Uytterhoeven <geert@linux-m68k.org>
First post2015-09-04 12:50 +0200
Last post2015-09-07 04:50 +0200
Articles 2 — 2 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH] lan78xx: Fix ladv/radv error handling in lan78xx_link_reset() Geert Uytterhoeven <geert@linux-m68k.org> - 2015-09-04 12:50 +0200
    Re: [PATCH] lan78xx: Fix ladv/radv error handling in  lan78xx_link_reset() David Miller <davem@davemloft.net> - 2015-09-07 04:50 +0200

#1218816 — [PATCH] lan78xx: Fix ladv/radv error handling in lan78xx_link_reset()

FromGeert Uytterhoeven <geert@linux-m68k.org>
Date2015-09-04 12:50 +0200
Subject[PATCH] lan78xx: Fix ladv/radv error handling in lan78xx_link_reset()
Message-ID<q4WJb-86i-9@gated-at.bofh.it>
net/usb/lan78xx.c: In function ‘lan78xx_link_reset’:
net/usb/lan78xx.c:1107: warning: comparison is always false due to limited range of data type
net/usb/lan78xx.c:1111: warning: comparison is always false due to limited range of data type

Assigning return values that can be negative error codes to "u16"
variables makes them positive, ignoring the errors.  Hence use "int"
instead.

Drop the "unlikely"s (unlikely considered harmful) and propagate the
actual error values instead of overriding them to -EIO while we're at
it.

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
---
Compile-tested only.

Many more overridden or plainly ignored errors, and lots of unlikely()
abuse to fix...
---
 drivers/net/usb/lan78xx.c | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c
index 39364a45af404388..a39518fc93aadf82 100644
--- a/drivers/net/usb/lan78xx.c
+++ b/drivers/net/usb/lan78xx.c
@@ -1049,8 +1049,7 @@ static int lan78xx_link_reset(struct lan78xx_net *dev)
 {
 	struct mii_if_info *mii = &dev->mii;
 	struct ethtool_cmd ecmd = { .cmd = ETHTOOL_GSET };
-	u16 ladv, radv;
-	int ret;
+	int ladv, radv, ret;
 	u32 buf;
 
 	/* clear PHY interrupt status */
@@ -1104,12 +1103,12 @@ static int lan78xx_link_reset(struct lan78xx_net *dev)
 		}
 
 		ladv = lan78xx_mdio_read(dev->net, mii->phy_id, MII_ADVERTISE);
-		if (unlikely(ladv < 0))
-			return -EIO;
+		if (ladv < 0)
+			return ladv;
 
 		radv = lan78xx_mdio_read(dev->net, mii->phy_id, MII_LPA);
-		if (unlikely(radv < 0))
-			return -EIO;
+		if (radv < 0)
+			return radv;
 
 		netif_dbg(dev, link, dev->net,
 			  "speed: %u duplex: %d anadv: 0x%04x anlpa: 0x%04x",
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [next] | [standalone]


#1219904 — Re: [PATCH] lan78xx: Fix ladv/radv error handling in lan78xx_link_reset()

FromDavid Miller <davem@davemloft.net>
Date2015-09-07 04:50 +0200
SubjectRe: [PATCH] lan78xx: Fix ladv/radv error handling in lan78xx_link_reset()
Message-ID<q5UFk-SF-17@gated-at.bofh.it>
In reply to#1218816
RnJvbTogR2VlcnQgVXl0dGVyaG9ldmVuIDxnZWVydEBsaW51eC1tNjhrLm9yZz4NCkRhdGU6IEZy
aSwgIDQgU2VwIDIwMTUgMTI6NDc6MjggKzAyMDANCg0KPiBuZXQvdXNiL2xhbjc4eHguYzogSW4g
ZnVuY3Rpb24goWxhbjc4eHhfbGlua19yZXNldKI6DQo+IG5ldC91c2IvbGFuNzh4eC5jOjExMDc6
IHdhcm5pbmc6IGNvbXBhcmlzb24gaXMgYWx3YXlzIGZhbHNlIGR1ZSB0byBsaW1pdGVkIHJhbmdl
IG9mIGRhdGEgdHlwZQ0KPiBuZXQvdXNiL2xhbjc4eHguYzoxMTExOiB3YXJuaW5nOiBjb21wYXJp
c29uIGlzIGFsd2F5cyBmYWxzZSBkdWUgdG8gbGltaXRlZCByYW5nZSBvZiBkYXRhIHR5cGUNCj4g
DQo+IEFzc2lnbmluZyByZXR1cm4gdmFsdWVzIHRoYXQgY2FuIGJlIG5lZ2F0aXZlIGVycm9yIGNv
ZGVzIHRvICJ1MTYiDQo+IHZhcmlhYmxlcyBtYWtlcyB0aGVtIHBvc2l0aXZlLCBpZ25vcmluZyB0
aGUgZXJyb3JzLiAgSGVuY2UgdXNlICJpbnQiDQo+IGluc3RlYWQuDQo+IA0KPiBEcm9wIHRoZSAi
dW5saWtlbHkicyAodW5saWtlbHkgY29uc2lkZXJlZCBoYXJtZnVsKSBhbmQgcHJvcGFnYXRlIHRo
ZQ0KPiBhY3R1YWwgZXJyb3IgdmFsdWVzIGluc3RlYWQgb2Ygb3ZlcnJpZGluZyB0aGVtIHRvIC1F
SU8gd2hpbGUgd2UncmUgYXQNCj4gaXQuDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBHZWVydCBVeXR0
ZXJob2V2ZW4gPGdlZXJ0QGxpbnV4LW02OGsub3JnPg0KDQpBcHBsaWVkLCB0aGFua3MuDQo=
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web