diff options
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 3a6770a65d78..449835f4331e 100644 --- a/drivers/net/usb/usbnet.c +++ b/drivers/net/usb/usbnet.c | |||
@@ -160,20 +160,19 @@ EXPORT_SYMBOL_GPL(usbnet_get_endpoints); | |||
160 | 160 | ||
161 | int usbnet_get_ethernet_addr(struct usbnet *dev, int iMACAddress) | 161 | int usbnet_get_ethernet_addr(struct usbnet *dev, int iMACAddress) |
162 | { | 162 | { |
163 | int tmp, i; | 163 | int tmp = -1, ret; |
164 | unsigned char buf [13]; | 164 | unsigned char buf [13]; |
165 | 165 | ||
166 | tmp = usb_string(dev->udev, iMACAddress, buf, sizeof buf); | 166 | ret = usb_string(dev->udev, iMACAddress, buf, sizeof buf); |
167 | if (tmp != 12) { | 167 | if (ret == 12) |
168 | tmp = hex2bin(dev->net->dev_addr, buf, 6); | ||
169 | if (tmp < 0) { | ||
168 | dev_dbg(&dev->udev->dev, | 170 | dev_dbg(&dev->udev->dev, |
169 | "bad MAC string %d fetch, %d\n", iMACAddress, tmp); | 171 | "bad MAC string %d fetch, %d\n", iMACAddress, tmp); |
170 | if (tmp >= 0) | 172 | if (ret >= 0) |
171 | tmp = -EINVAL; | 173 | ret = -EINVAL; |
172 | return tmp; | 174 | return ret; |
173 | } | 175 | } |
174 | for (i = tmp = 0; i < 6; i++, tmp += 2) | ||
175 | dev->net->dev_addr [i] = | ||
176 | (hex_to_bin(buf[tmp]) << 4) + hex_to_bin(buf[tmp + 1]); | ||
177 | return 0; | 176 | return 0; |
178 | } | 177 | } |
179 | EXPORT_SYMBOL_GPL(usbnet_get_ethernet_addr); | 178 | EXPORT_SYMBOL_GPL(usbnet_get_ethernet_addr); |