diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c index 683123b10..66d75b2dc 100644 --- a/src/drivers/driver_nl80211.c +++ b/src/drivers/driver_nl80211.c @@ -232,6 +232,7 @@ struct i802_bss { unsigned int in_deinit:1; unsigned int wdev_id_set:1; unsigned int added_if:1; + unsigned int static_ap:1; u8 addr[ETH_ALEN]; @@ -4763,6 +4764,9 @@ wpa_driver_nl80211_finish_drv_init(struct wpa_driver_nl80211_data *drv, bss->if_dynamic = bss->if_dynamic || drv->global->if_add_wdevid_set; drv->global->if_add_wdevid_set = 0; + if (!bss->if_dynamic && nl80211_get_ifmode(bss) == NL80211_IFTYPE_AP) + bss->static_ap = 1; + if (wpa_driver_nl80211_capa(drv)) return -1; @@ -4778,7 +4782,7 @@ wpa_driver_nl80211_finish_drv_init(struct wpa_driver_nl80211_data *drv, if (first && nl80211_get_ifmode(bss) == NL80211_IFTYPE_AP) drv->start_mode_ap = 1; - if (drv->hostapd) + if (drv->hostapd || bss->static_ap) nlmode = NL80211_IFTYPE_AP; else if (bss->if_dynamic) nlmode = nl80211_get_ifmode(bss);