From c173d5504d08ca02e291beeaf5abde5c70189cee Mon Sep 17 00:00:00 2001
From: Arumuga Durai A <cadurai@codeaurora.org>
Date: Thu, 9 Feb 2017 13:19:17 +0530
Subject: [PATCH] USB: gadget: Replace %pK with %pM

commit 7d08f0c4e3b7c35e ("usb: gadget: replace %p with
%pK") modifies the %pM (MAC address format specifier) as
%pKM in usb drivers. when usb composition switch happens
ecm function bind_config() access the invalid host's
ethernet address and leads usb enumeration failure. Fix
this by replace %pKM with %pM only for usb-eth module.

Change-Id: I29364891fbdf381b5a6ea360ecdbe3ef237f24bd
Signed-off-by: Arumuga Durai A <cadurai@codeaurora.org>
---
 drivers/usb/gadget/function/f_gsi.c      |  4 ++--
 drivers/usb/gadget/function/f_qc_ecm.c   |  2 +-
 drivers/usb/gadget/function/f_qc_rndis.c |  2 +-
 drivers/usb/gadget/function/u_ether.c    | 10 +++++-----
 drivers/usb/gadget/function/u_qc_ether.c |  4 ++--
 5 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/drivers/usb/gadget/function/f_gsi.c b/drivers/usb/gadget/function/f_gsi.c
index 8c80a8d80ac9..6481ee96f3e4 100644
--- a/drivers/usb/gadget/function/f_gsi.c
+++ b/drivers/usb/gadget/function/f_gsi.c
@@ -2537,7 +2537,7 @@ static int gsi_bind(struct usb_configuration *c, struct usb_function *f)
 		/* export host's Ethernet address in CDC format */
 		random_ether_addr(gsi->d_port.ipa_init_params.device_ethaddr);
 		random_ether_addr(gsi->d_port.ipa_init_params.host_ethaddr);
-		log_event_dbg("setting host_ethaddr=%pKM, device_ethaddr = %pKM",
+		log_event_dbg("setting host_ethaddr=%pM, device_ethaddr = %pM",
 		gsi->d_port.ipa_init_params.host_ethaddr,
 		gsi->d_port.ipa_init_params.device_ethaddr);
 		memcpy(gsi->ethaddr, &gsi->d_port.ipa_init_params.host_ethaddr,
@@ -2669,7 +2669,7 @@ static int gsi_bind(struct usb_configuration *c, struct usb_function *f)
 		/* export host's Ethernet address in CDC format */
 		random_ether_addr(gsi->d_port.ipa_init_params.device_ethaddr);
 		random_ether_addr(gsi->d_port.ipa_init_params.host_ethaddr);
-		log_event_dbg("setting host_ethaddr=%pKM, device_ethaddr = %pKM",
+		log_event_dbg("setting host_ethaddr=%pM, device_ethaddr = %pM",
 		gsi->d_port.ipa_init_params.host_ethaddr,
 		gsi->d_port.ipa_init_params.device_ethaddr);
 
diff --git a/drivers/usb/gadget/function/f_qc_ecm.c b/drivers/usb/gadget/function/f_qc_ecm.c
index 005a8d1f8747..d96f727b2da4 100644
--- a/drivers/usb/gadget/function/f_qc_ecm.c
+++ b/drivers/usb/gadget/function/f_qc_ecm.c
@@ -1134,7 +1134,7 @@ ecm_qc_bind_config(struct usb_configuration *c, u8 ethaddr[ETH_ALEN],
 	if (ecm->xport != USB_GADGET_XPORT_BAM2BAM_IPA)
 		return status;
 
-	pr_debug("setting ecm_ipa, host_ethaddr=%pKM, device_ethaddr=%pKM",
+	pr_debug("setting ecm_ipa, host_ethaddr=%pM, device_ethaddr=%pM",
 			ipa_params.host_ethaddr, ipa_params.device_ethaddr);
 	status = ecm_ipa_init(&ipa_params);
 	if (status) {
diff --git a/drivers/usb/gadget/function/f_qc_rndis.c b/drivers/usb/gadget/function/f_qc_rndis.c
index baffff7e52e9..ac17d0aa46ae 100644
--- a/drivers/usb/gadget/function/f_qc_rndis.c
+++ b/drivers/usb/gadget/function/f_qc_rndis.c
@@ -1198,7 +1198,7 @@ usb_function *rndis_qc_bind_config_vendor(struct usb_function_instance *fi,
 	/* export host's Ethernet address in CDC format */
 	random_ether_addr(rndis_ipa_params.host_ethaddr);
 	random_ether_addr(rndis_ipa_params.device_ethaddr);
-	pr_debug("setting host_ethaddr=%pKM, device_ethaddr=%pKM\n",
+	pr_debug("setting host_ethaddr=%pM, device_ethaddr=%pM\n",
 		rndis_ipa_params.host_ethaddr,
 		rndis_ipa_params.device_ethaddr);
 	rndis_ipa_supported = true;
diff --git a/drivers/usb/gadget/function/u_ether.c b/drivers/usb/gadget/function/u_ether.c
index 70c95d0df581..7244dc9419f3 100644
--- a/drivers/usb/gadget/function/u_ether.c
+++ b/drivers/usb/gadget/function/u_ether.c
@@ -971,8 +971,8 @@ struct eth_dev *gether_setup_name(struct usb_gadget *g,
 		free_netdev(net);
 		dev = ERR_PTR(status);
 	} else {
-		INFO(dev, "MAC %pKM\n", net->dev_addr);
-		INFO(dev, "HOST MAC %pKM\n", dev->host_mac);
+		INFO(dev, "MAC %pM\n", net->dev_addr);
+		INFO(dev, "HOST MAC %pM\n", dev->host_mac);
 
 		/*
 		 * two kinds of host-initiated state changes:
@@ -1040,7 +1040,7 @@ int gether_register_netdev(struct net_device *net)
 		dev_dbg(&g->dev, "register_netdev failed, %d\n", status);
 		return status;
 	} else {
-		INFO(dev, "HOST MAC %pKM\n", dev->host_mac);
+		INFO(dev, "HOST MAC %pM\n", dev->host_mac);
 
 		/* two kinds of host-initiated state changes:
 		 *  - iff DATA transfer is active, carrier is "on"
@@ -1056,7 +1056,7 @@ int gether_register_netdev(struct net_device *net)
 	if (status)
 		pr_warn("cannot set self ethernet address: %d\n", status);
 	else
-		INFO(dev, "MAC %pKM\n", dev->dev_mac);
+		INFO(dev, "MAC %pM\n", dev->dev_mac);
 
 	return status;
 }
@@ -1124,7 +1124,7 @@ int gether_get_host_addr_cdc(struct net_device *net, char *host_addr, int len)
 		return -EINVAL;
 
 	dev = netdev_priv(net);
-	snprintf(host_addr, len, "%pKm", dev->host_mac);
+	snprintf(host_addr, len, "%pM", dev->host_mac);
 
 	return strlen(host_addr);
 }
diff --git a/drivers/usb/gadget/function/u_qc_ether.c b/drivers/usb/gadget/function/u_qc_ether.c
index 2fde4850f8cd..bacaf52f42d9 100644
--- a/drivers/usb/gadget/function/u_qc_ether.c
+++ b/drivers/usb/gadget/function/u_qc_ether.c
@@ -317,8 +317,8 @@ int gether_qc_setup_name(struct usb_gadget *g, u8 ethaddr[ETH_ALEN],
 		dev_dbg(&g->dev, "register_netdev failed, %d\n", status);
 		free_netdev(net);
 	} else {
-		INFO(dev, "MAC %pKM\n", net->dev_addr);
-		INFO(dev, "HOST MAC %pKM\n", dev->host_mac);
+		INFO(dev, "MAC %pM\n", net->dev_addr);
+		INFO(dev, "HOST MAC %pM\n", dev->host_mac);
 
 	}