usbnet: re-use native hex2bin()
[firefly-linux-kernel-4.4.55.git] / drivers / net / usb / usbnet.c
index 3a6770a65d7836ace177cff2bb45c925b474a84a..449835f4331e210daad6c8717430341c1c6996ef 100644 (file)
@@ -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);