--- a/src/drivers/driver_nl80211.c
+++ b/src/drivers/driver_nl80211.c
@@ -7144,8 +7144,6 @@ static int wpa_driver_nl80211_set_mode(s
 			ret = nl80211_set_mode(drv, drv->ifindex, nlmode);
 			if (ret == -EACCES)
 				break;
-			res = linux_set_iface_flags(drv->global->ioctl_sock,
-						    bss->ifname, 1);
 			if (res && !ret)
 				ret = -1;
 			else if (ret != -EBUSY)
@@ -7161,6 +7159,7 @@ static int wpa_driver_nl80211_set_mode(s
 			   "interface is down");
 		drv->nlmode = nlmode;
 		drv->ignore_if_down_event = 1;
+		linux_set_iface_flags(drv->global->ioctl_sock, bss->ifname, 1);
 	}
 
 done:
