merge in jb-mr1-release history after reset to jb-mr1-dev
diff --git a/wpa_supplicant/p2p_supplicant.c b/wpa_supplicant/p2p_supplicant.c
index f97d2fa..e6b0128 100644
--- a/wpa_supplicant/p2p_supplicant.c
+++ b/wpa_supplicant/p2p_supplicant.c
@@ -5444,32 +5444,35 @@
 	struct p2p_data *p2p = wpa_s->global->p2p;
 
 	for (iface = wpa_s->global->ifaces; iface; iface = iface->next) {
-		if((iface->p2p_group_interface) && (iface->current_ssid) &&
-			(iface->current_ssid->frequency != freq)) {
+		if ((iface->current_ssid) &&
+		    (iface->current_ssid->frequency != freq) &&
+		    ((iface->p2p_group_interface) ||
+		     (iface->current_ssid->p2p_group))) {
 
-			if (iface->p2p_group_interface == P2P_GROUP_INTERFACE_GO) {
-					/* Try to see whether we can move the GO. If it
-					 * is not possible, remove the GO interface
-					 */
-					if(wpa_drv_switch_channel(iface, freq) == 0) {
-							wpa_printf(MSG_ERROR, "P2P: GO Moved to freq(%d)", freq);
-							iface->current_ssid->frequency = freq;
-							continue;
-					}
+			if ((iface->p2p_group_interface == P2P_GROUP_INTERFACE_GO)  ||
+			    (iface->current_ssid->mode == WPAS_MODE_P2P_GO)) {
+				/* Try to see whether we can move the GO. If it
+				 * is not possible, remove the GO interface
+				 */
+				if (wpa_drv_switch_channel(iface, freq) == 0) {
+					wpa_printf(MSG_ERROR, "P2P: GO Moved to freq(%d)", freq);
+					iface->current_ssid->frequency = freq;
+					continue;
+				}
 			}
 
 			/* If GO cannot be moved or if the conflicting interface is a
 			 * P2P Client, remove the interface depending up on the connection
 			 * priority */
-			if(!wpas_is_p2p_prioritized(wpa_s)) {
+			if (!wpas_is_p2p_prioritized(wpa_s)) {
 				/* STA connection has priority over existing
 				 * P2P connection. So remove the interface */
-				wpa_printf(MSG_DEBUG, "P2P: Removing P2P connection due to Single channel"
+				wpa_printf(MSG_DEBUG, "P2P: Removing P2P connection due to Single channel "
 						"concurrent mode frequency conflict");
 				wpas_p2p_group_delete(iface, P2P_GROUP_REMOVAL_FREQ_CONFLICT);
 			} else {
 				/* Existing connection has the priority. Disable the newly
-                 * selected network and let the application know about it.
+				 * selected network and let the application know about it.
  				 */
 				return -1;
 			}