Snap for 11392706 from 66c3ad1dd1d802d026ab5c121bc519562824dbdc to 24Q2-release

Change-Id: Iaadc351343456f08b93d59e449a5cc133a2025c7
diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c
index c906b33..3b96d55 100644
--- a/src/drivers/driver_nl80211.c
+++ b/src/drivers/driver_nl80211.c
@@ -11830,15 +11830,6 @@
 	if (!addr)
 		addr = drv->perm_addr;
 
-	/*
-	 * Try to change the address first without setting the interface
-	 * down and then fall back to DOWN/set addr/UP if the first
-	 * attempt failed. This can reduce the interface setup time
-	 * significantly with some drivers.
-	 */
-	if (!linux_set_ifhwaddr(drv->global->ioctl_sock, bss->ifname, addr))
-		goto done;
-
 	if (linux_set_iface_flags(drv->global->ioctl_sock, bss->ifname, 0) < 0)
 		return -1;
 
@@ -11855,19 +11846,18 @@
 		return -1;
 	}
 
-	if (linux_set_iface_flags(drv->global->ioctl_sock, bss->ifname, 1) < 0)
-	{
-		wpa_printf(MSG_DEBUG,
-			   "nl80211: Could not restore interface UP after set_mac_addr");
-	}
-
-done:
 	wpa_printf(MSG_DEBUG, "nl80211: set_mac_addr for %s to " MACSTR,
 		   bss->ifname, MAC2STR(addr));
 	drv->addr_changed = new_addr;
 	os_memcpy(bss->prev_addr, bss->addr, ETH_ALEN);
 	os_memcpy(bss->addr, addr, ETH_ALEN);
 
+	if (linux_set_iface_flags(drv->global->ioctl_sock, bss->ifname, 1) < 0)
+	{
+		wpa_printf(MSG_DEBUG,
+			   "nl80211: Could not restore interface UP after set_mac_addr");
+	}
+
 	return 0;
 }