diff options
author | Andy Shevchenko <andy.shevchenko@gmail.com> | 2015-01-22 23:27:12 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-01-25 00:09:41 -0800 |
commit | 51487ae736fecf41e8c58cf668934babe9700363 (patch) | |
tree | 53b9523873d0ee763aaaf86ae0a84bd2c8058438 /drivers/net/usb/usbnet.c | |
parent | bc0247a4ab20551d74ad3d67923f63a5f377ba0d (diff) | |
download | op-kernel-dev-51487ae736fecf41e8c58cf668934babe9700363.zip op-kernel-dev-51487ae736fecf41e8c58cf668934babe9700363.tar.gz |
usbnet: re-use native hex2bin()
Call hex2bin() library function, instead of doing conversion here.
Signed-off-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Acked-by: Oliver Neukum <oneukum@suse.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/usb/usbnet.c')
-rw-r--r-- | drivers/net/usb/usbnet.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/drivers/net/usb/usbnet.c b/drivers/net/usb/usbnet.c index 3a6770a..449835f 100644 --- a/drivers/net/usb/usbnet.c +++ b/drivers/net/usb/usbnet.c @@ -160,20 +160,19 @@ EXPORT_SYMBOL_GPL(usbnet_get_endpoints); int usbnet_get_ethernet_addr(struct usbnet *dev, int iMACAddress) { - int tmp, i; + int tmp = -1, ret; unsigned char buf [13]; - tmp = usb_string(dev->udev, iMACAddress, buf, sizeof buf); - if (tmp != 12) { + ret = usb_string(dev->udev, iMACAddress, buf, sizeof buf); + if (ret == 12) + tmp = hex2bin(dev->net->dev_addr, buf, 6); + if (tmp < 0) { dev_dbg(&dev->udev->dev, "bad MAC string %d fetch, %d\n", iMACAddress, tmp); - if (tmp >= 0) - tmp = -EINVAL; - return tmp; + if (ret >= 0) + ret = -EINVAL; + return ret; } - for (i = tmp = 0; i < 6; i++, tmp += 2) - dev->net->dev_addr [i] = - (hex_to_bin(buf[tmp]) << 4) + hex_to_bin(buf[tmp + 1]); return 0; } EXPORT_SYMBOL_GPL(usbnet_get_ethernet_addr); |