23 lines
1,003 B
Diff
23 lines
1,003 B
Diff
|
diff --git a/drivers/usb/gadget/function/u_ether.c b/drivers/usb/gadget/function/u_ether.c
|
||
|
index c016ac37..b01fb1ab 100755
|
||
|
--- a/drivers/usb/gadget/function/u_ether.c
|
||
|
+++ b/drivers/usb/gadget/function/u_ether.c
|
||
|
@@ -1271,8 +1271,16 @@ struct eth_dev *gether_setup_name(struct usb_gadget *g, u8 ethaddr[ETH_ALEN],
|
||
|
dev_warn(&g->dev,
|
||
|
"using random %s ethernet address\n", "self");
|
||
|
#ifdef CONFIG_USB_ANDROID_SAMSUNG_COMPOSITE
|
||
|
+ if ((ethaddr[0] == 0x00) && (ethaddr[1] == 0x00) &&
|
||
|
+ (ethaddr[2] == 0x00) && (ethaddr[3] == 0x00) &&
|
||
|
+ (ethaddr[4] == 0x00) && (ethaddr[5] == 0x00)) {
|
||
|
+ printk(KERN_DEBUG "%s: no unique host MAC was set, generate random\n", __func__);
|
||
|
+ /* we can use random_ether_addr() from include/linux/etherdevice.h */
|
||
|
+ random_ether_addr(ethaddr);
|
||
|
+ } else {
|
||
|
+ printk(KERN_DEBUG "%s: set unique host mac\n", __func__);
|
||
|
+ }
|
||
|
memcpy(dev->host_mac, ethaddr, ETH_ALEN);
|
||
|
- printk(KERN_DEBUG "usb: set unique host mac\n");
|
||
|
|
||
|
#else
|
||
|
if (get_ether_addr(host_addr, dev->host_mac))
|