Browse Source

nl80211: Fix error while enabling AP mode with driver-SME

Following commit a70cd0db876b2ffad7e3d608e3f9a2fcf2e7a879 ('Don't
register for Beacon frames for IEEE 802.11ad AP'),
nl80211_get_wiphy_data_ap() is unconditionally called when starting AP.
This function tries to register for Beacon frames RX which fails for
some driver which don't support such registration and do not need it in
case the driver implements AP mode SME functionality.

Fix this by conditionally calling nl80211_get_wiphy_data_ap() like prior
to commit a70cd0db876b2ffad7e3d608e3f9a2fcf2e7a879.

Signed-off-by: Dedy Lansky <qca_dlansky@qca.qualcomm.com>
Dedy Lansky 8 years ago
parent
commit
89fa633afb
1 changed files with 2 additions and 1 deletions
  1. 2 1
      src/drivers/driver_nl80211.c

+ 2 - 1
src/drivers/driver_nl80211.c

@@ -3786,7 +3786,8 @@ static int wpa_driver_nl80211_set_ap(void *priv,
 		   beacon_set);
 	if (beacon_set)
 		cmd = NL80211_CMD_SET_BEACON;
-	else if (!nl80211_get_wiphy_data_ap(bss))
+	else if (!drv->device_ap_sme && !drv->use_monitor &&
+		 !nl80211_get_wiphy_data_ap(bss))
 		return -ENOBUFS;
 
 	wpa_hexdump(MSG_DEBUG, "nl80211: Beacon head",