aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSunil Dutt <usdutt@qti.qualcomm.com>2016-09-01 22:14:36 +0530
committerPradeep Reddy POTTETI <ppotte@codeaurora.org>2016-09-12 13:55:13 +0530
commit15d640d55dfb75f71247c91ad4e910eacac28d0c (patch)
tree226718c6430db97149ff6be759c96b17ae40aac3
parentaa06895af28c248b97d0c6c2d592f956eb5927bd (diff)
downloadandroid_external_wpa_supplicant_8-15d640d55dfb75f71247c91ad4e910eacac28d0c.tar.gz
android_external_wpa_supplicant_8-15d640d55dfb75f71247c91ad4e910eacac28d0c.tar.bz2
android_external_wpa_supplicant_8-15d640d55dfb75f71247c91ad4e910eacac28d0c.zip
nl80211: Use the monitor interface only without device_ap_sme support
The places using drv->use_monitor were already skipping creation of the monitor interface if drv->device_ap_sme == 0. This means that the monitor interface operations would not have worked anyway and it is safe to set drv->use_monitor to zero for all such cases. This fixes an issue with management frame subscription not happening properly for the case where the AP SME is in the driver and the driver supports monitor interfaces (for other purposes). This commit also removes the check for monitor support and the previously used workaround that cleared drv->use_monitor in drv->device_ap_sme == 1 case if monitor interface was not supported since that condition cannot occur anymore. Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com> Git-commit: 660103eca9321af45c54f973c99714d583979f9e Git-repo: git://w1.fi/srv/git/hostap.git Change-Id: Ie86165061a48f0ceee63fef5ed40cb060fd464ca CRs-Fixed: 1065588
-rw-r--r--src/drivers/driver_nl80211_capa.c21
1 files changed, 2 insertions, 19 deletions
diff --git a/src/drivers/driver_nl80211_capa.c b/src/drivers/driver_nl80211_capa.c
index 56647449..c390e68c 100644
--- a/src/drivers/driver_nl80211_capa.c
+++ b/src/drivers/driver_nl80211_capa.c
@@ -66,7 +66,6 @@ struct wiphy_info_data {
unsigned int device_ap_sme:1;
unsigned int poll_command_supported:1;
unsigned int data_tx_status:1;
- unsigned int monitor_supported:1;
unsigned int auth_supported:1;
unsigned int connect_supported:1;
unsigned int p2p_go_supported:1;
@@ -129,9 +128,6 @@ static void wiphy_info_supported_iftypes(struct wiphy_info_data *info,
case NL80211_IFTYPE_P2P_CLIENT:
info->p2p_client_supported = 1;
break;
- case NL80211_IFTYPE_MONITOR:
- info->monitor_supported = 1;
- break;
}
}
}
@@ -1031,21 +1027,8 @@ int wpa_driver_nl80211_capa(struct wpa_driver_nl80211_data *drv)
* If poll command and tx status are supported, mac80211 is new enough
* to have everything we need to not need monitor interfaces.
*/
- drv->use_monitor = !info.poll_command_supported || !info.data_tx_status;
-
- if (drv->device_ap_sme && drv->use_monitor) {
- /*
- * Non-mac80211 drivers may not support monitor interface.
- * Make sure we do not get stuck with incorrect capability here
- * by explicitly testing this.
- */
- if (!info.monitor_supported) {
- wpa_printf(MSG_DEBUG, "nl80211: Disable use_monitor "
- "with device_ap_sme since no monitor mode "
- "support detected");
- drv->use_monitor = 0;
- }
- }
+ drv->use_monitor = !info.device_ap_sme &&
+ (!info.poll_command_supported || !info.data_tx_status);
/*
* If we aren't going to use monitor interfaces, but the