Revert "nl80211: Remove duplicated check in nl80211_setup_ap()"

This reverts commit 647862eb60.

The second check of device_ap_sme looks like duplicated, but it isn't
actually. The trick is nl80211_create_monitor_interface may change that
variable value and the second evaluation may give a different result.

This definitely isn't a very clear code, but that change caused a
regression for drivers that:
1) Don't report NL80211_ATTR_DEVICE_AP_SME
2) Don't support monitor mode
3) Don't support subscribing for PROBE_REQ and/or ACTION frames
like brcmfmac. With such drivers hostapd doesn't start anymore.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
This commit is contained in:
Rafał Miłecki 2016-09-12 19:28:22 +02:00 committed by Jouni Malinen
parent 205d2d1ff5
commit ea19b39f60

View file

@ -4434,7 +4434,8 @@ static int nl80211_setup_ap(struct i802_bss *bss)
"nl80211: Failed to subscribe for mgmt frames from SME driver - trying to run without it"); "nl80211: Failed to subscribe for mgmt frames from SME driver - trying to run without it");
if (!drv->device_ap_sme && drv->use_monitor && if (!drv->device_ap_sme && drv->use_monitor &&
nl80211_create_monitor_interface(drv)) nl80211_create_monitor_interface(drv) &&
!drv->device_ap_sme)
return -1; return -1;
if (drv->device_ap_sme && if (drv->device_ap_sme &&