From 4b0730dfd26c14affe53eb9217d767d13c39df89 Mon Sep 17 00:00:00 2001 From: nakul kachhwaha Date: Thu, 11 Jan 2018 11:24:17 +0530 Subject: qcacld-2.0: Fix monitor mode not showing in iwconfig and iw utility iwconfig was showing interface type as managed in case of monitor mode Added the support for NL80211_IFTYPE_MONITOR and IW_MODE_MONITOR in the code Change-Id: Ibde24dd3b826fc744d1ec82820fcb51952e1b6ef CRs-Fixed: 2139968 --- CORE/HDD/src/wlan_hdd_main.c | 4 ++++ CORE/HDD/src/wlan_hdd_wext.c | 9 +++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/CORE/HDD/src/wlan_hdd_main.c b/CORE/HDD/src/wlan_hdd_main.c index 066046c4c891..117acb451402 100644 --- a/CORE/HDD/src/wlan_hdd_main.c +++ b/CORE/HDD/src/wlan_hdd_main.c @@ -11892,6 +11892,8 @@ hdd_adapter_t *hdd_open_adapter(hdd_context_t *hdd_ctx, if (session_type == WLAN_HDD_P2P_CLIENT) adapter->wdev.iftype = NL80211_IFTYPE_P2P_CLIENT; + else if (VOS_MONITOR_MODE == vos_get_conparam()) + adapter->wdev.iftype = NL80211_IFTYPE_MONITOR; else adapter->wdev.iftype = NL80211_IFTYPE_STATION; @@ -16930,6 +16932,7 @@ int hdd_wlan_startup(struct device *dev, v_VOID_t *hif_sc) rtnl_lock_enable); #ifdef WLAN_OPEN_P2P_INTERFACE + if(VOS_MONITOR_MODE != vos_get_conparam()){ /* Open P2P device interface */ if (pAdapter != NULL && !hdd_cfg_is_sub20_channel_width_enabled(pHddCtx)) { @@ -16966,6 +16969,7 @@ int hdd_wlan_startup(struct device *dev, v_VOID_t *hif_sc) goto err_close_adapter; } } + } #endif /* WLAN_OPEN_P2P_INTERFACE */ /* Open 802.11p Interface */ diff --git a/CORE/HDD/src/wlan_hdd_wext.c b/CORE/HDD/src/wlan_hdd_wext.c index bcc796739090..420504029711 100644 --- a/CORE/HDD/src/wlan_hdd_wext.c +++ b/CORE/HDD/src/wlan_hdd_wext.c @@ -2177,8 +2177,13 @@ __iw_get_mode(struct net_device *dev, struct iw_request_info *info, switch (pWextState->roamProfile.BSSType) { case eCSR_BSS_TYPE_INFRASTRUCTURE: - hddLog(LOG1, FL("returns IW_MODE_INFRA")); - wrqu->mode = IW_MODE_INFRA; + if(VOS_MONITOR_MODE == vos_get_conparam()){ + hddLog(LOG1, FL("returns IW_MODE_MONITOR")); + wrqu->mode = IW_MODE_MONITOR; + }else{ + hddLog(LOG1, FL("returns IW_MODE_INFRA")); + wrqu->mode = IW_MODE_INFRA; + } break; case eCSR_BSS_TYPE_IBSS: case eCSR_BSS_TYPE_START_IBSS: -- cgit v1.2.3