From 89fa633afbc6eda97a6e196c70f5ae1443b33c2f Mon Sep 17 00:00:00 2001 From: Dedy Lansky Date: Sun, 5 Feb 2017 12:52:09 +0200 Subject: [PATCH] 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 --- src/drivers/driver_nl80211.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c index 1fb113f75..27e22c6d3 100644 --- a/src/drivers/driver_nl80211.c +++ b/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",