--- a/src/drivers/driver_nl80211.c
+++ b/src/drivers/driver_nl80211.c
-@@ -7144,8 +7144,6 @@ static int wpa_driver_nl80211_set_mode(s
+@@ -8145,12 +8145,7 @@ static int wpa_driver_nl80211_set_mode(s
+ /* Try to set the mode again while the interface is
+ * down */
ret = nl80211_set_mode(drv, drv->ifindex, nlmode);
- if (ret == -EACCES)
+- if (ret == -EACCES)
+- break;
+- res = i802_set_iface_flags(bss, 1);
+- if (res && !ret)
+- ret = -1;
+- else if (ret != -EBUSY)
++ if (ret != -EBUSY)
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
+ } else
+ wpa_printf(MSG_DEBUG, "nl80211: Failed to set "
+@@ -8163,6 +8158,8 @@ 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);
++ if (i802_set_iface_flags(bss, 1))
++ ret = -1;
}
done: