diff options
| author | Anjaneedevi Kapparapu <akappa@codeaurora.org> | 2015-04-21 17:21:36 +0530 |
|---|---|---|
| committer | Anjaneedevi Kapparapu <akappa@codeaurora.org> | 2015-04-21 17:23:49 +0530 |
| commit | 67bdc132976db9f58ffe246fbc042a6697d9c882 (patch) | |
| tree | 9884902d6683c1dada0596e94a02a88751c5b369 | |
| parent | f0835c338fb6b2962f30e3dabbd9569fed2f108d (diff) | |
| parent | 4bc5db840117e4053ddf3fa2ac70a942123b33f7 (diff) | |
Release 4.0.10.81 QCACLD WLAN Driver
Merge remote-tracking branch 'origin/caf/caf-wlan/master'
* origin/caf/caf-wlan/master:
Cafstaging Release 4.0.10.81
qcacld: Fix incorrect enum value in SME Message types
qcacld: Send proper context to WLANSAP_DeauthSta
qcacld: Fix AP-AP ACS issue
qcacld: Fix AP restart failure with IPA enabled
qcacld: Avoid calling sleeping functions during multicast of nl messages
Change-Id: Icf6f39006cfcd7eca5a5577eee11abd88f28535b
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_cfg80211.c | 6 | ||||
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_ipa.c | 24 | ||||
| -rwxr-xr-x | CORE/HDD/src/wlan_hdd_main.c | 6 | ||||
| -rw-r--r-- | CORE/MAC/inc/qwlan_version.h | 4 | ||||
| -rw-r--r-- | CORE/MAC/inc/wniApi.h | 3 | ||||
| -rw-r--r-- | CORE/SAP/src/sapModule.c | 4 | ||||
| -rw-r--r-- | CORE/SVC/src/nlink/wlan_nlink_srv.c | 6 |
7 files changed, 31 insertions, 22 deletions
diff --git a/CORE/HDD/src/wlan_hdd_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c index 6b331285383e..f524889451c6 100644 --- a/CORE/HDD/src/wlan_hdd_cfg80211.c +++ b/CORE/HDD/src/wlan_hdd_cfg80211.c @@ -8825,6 +8825,12 @@ static int wlan_hdd_cfg80211_start_bss(hdd_adapter_t *pHostapdAdapter, hddLog(VOS_TRACE_LEVEL_ERROR, "Overriding guest AP's channel !!"); pConfig->channel = con_ch; + pConfig->apStartChannelNum = + con_sap_adapter->sessionCtx.ap.sapConfig.apStartChannelNum; + pConfig->apEndChannelNum = + con_sap_adapter->sessionCtx.ap.sapConfig.apEndChannelNum; + pConfig->apAutoChannelSelection = + con_sap_adapter->sessionCtx.ap.sapConfig.apAutoChannelSelection; } } else { /* We have idle AP interface (no active SAP running on it diff --git a/CORE/HDD/src/wlan_hdd_ipa.c b/CORE/HDD/src/wlan_hdd_ipa.c index 8d15ce4b5ffc..df8f0247c8c6 100644 --- a/CORE/HDD/src/wlan_hdd_ipa.c +++ b/CORE/HDD/src/wlan_hdd_ipa.c @@ -2373,7 +2373,7 @@ static void hdd_ipa_w2i_cb(void *priv, enum ipa_dp_evt_type evt, * When INTRA_BSS_FWD_OFFLOAD is enabled, FW will send * all Rx packets to IPA uC, which need to be forwarded * to other interface. - * And, IPA driver will send back to WLAN host driver + * And, IPA driver will send back to WLAN host driver * through exception pipe with fw_desc field set by FW. * Here we are checking fw_desc field for FORWARD bit * set, and forward to Tx. Then copy to kernel stack @@ -3433,20 +3433,14 @@ int hdd_ipa_wlan_evt(hdd_adapter_t *adapter, uint8_t sta_id, break; case WLAN_AP_CONNECT: - if (adapter->ipa_context) { - /* For DFS channel we get two start_bss event before - * and after CAC, so dont return error. - */ - if(VOS_IS_DFS_CH( - adapter->sessionCtx.ap.operatingChannel)) { - return 0; - } else { - HDD_IPA_LOG(VOS_TRACE_LEVEL_INFO, - "%s: Evt: %d, SAP already connected", - msg_ex->name, meta.msg_type); - return -EINVAL; - } - } + /* For DFS channel we get two start_bss event (before and after + * CAC). Also when ACS range includes both DFS and non DFS + * channels, we could possibly change channel many times due to + * RADAR detection and chosen channel may not be a DFS channels. + * So dont return error here. Just discard the event. + */ + if (adapter->ipa_context) + return 0; #ifdef IPA_UC_OFFLOAD if (hdd_ipa_uc_is_enabled(hdd_ipa)) { diff --git a/CORE/HDD/src/wlan_hdd_main.c b/CORE/HDD/src/wlan_hdd_main.c index 5e8d7a8270bd..fda069f1855a 100755 --- a/CORE/HDD/src/wlan_hdd_main.c +++ b/CORE/HDD/src/wlan_hdd_main.c @@ -13404,8 +13404,12 @@ void wlan_hdd_send_svc_nlink_msg(int type, void *data, int len) struct nlmsghdr *nlh; tAniMsgHdr *ani_hdr; void *nl_data = NULL; + int flags = GFP_KERNEL; - skb = alloc_skb(NLMSG_SPACE(WLAN_NL_MAX_PAYLOAD), GFP_KERNEL); + if (in_interrupt() || irqs_disabled() || in_atomic()) + flags = GFP_ATOMIC; + + skb = alloc_skb(NLMSG_SPACE(WLAN_NL_MAX_PAYLOAD), flags); if(skb == NULL) { VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR, diff --git a/CORE/MAC/inc/qwlan_version.h b/CORE/MAC/inc/qwlan_version.h index 23efe1c0e5f0..f403cf78f71d 100644 --- a/CORE/MAC/inc/qwlan_version.h +++ b/CORE/MAC/inc/qwlan_version.h @@ -42,9 +42,9 @@ BRIEF DESCRIPTION: #define QWLAN_VERSION_MINOR 0 #define QWLAN_VERSION_PATCH 10 #define QWLAN_VERSION_EXTRA "" -#define QWLAN_VERSION_BUILD 80 +#define QWLAN_VERSION_BUILD 81 -#define QWLAN_VERSIONSTR "4.0.10.80" +#define QWLAN_VERSIONSTR "4.0.10.81" #define AR6320_REV1_VERSION 0x5000000 diff --git a/CORE/MAC/inc/wniApi.h b/CORE/MAC/inc/wniApi.h index c7e67cc0fc18..8a4343cb6a57 100644 --- a/CORE/MAC/inc/wniApi.h +++ b/CORE/MAC/inc/wniApi.h @@ -384,13 +384,14 @@ enum eWniMsgTypes eWNI_SME_EPNO_NETWORK_FOUND_IND, #endif eWNI_SME_FW_STATUS_IND, - eWNI_SME_MSG_TYPES_END, eWNI_SME_OCB_SET_CONFIG_RSP, eWNI_SME_OCB_GET_TSF_TIMER_RSP, eWNI_SME_DCC_GET_STATS_RSP, eWNI_SME_DCC_UPDATE_NDL_RSP, eWNI_SME_DCC_STATS_EVENT, + + eWNI_SME_MSG_TYPES_END }; typedef enum { diff --git a/CORE/SAP/src/sapModule.c b/CORE/SAP/src/sapModule.c index c190f30e6b38..7dd46eb29cf7 100644 --- a/CORE/SAP/src/sapModule.c +++ b/CORE/SAP/src/sapModule.c @@ -1484,7 +1484,7 @@ WLANSAP_ModifyACL eCsrForcedDeauthSta, (SIR_MAC_MGMT_DEAUTH >> 4), &delStaParams); - WLANSAP_DeauthSta(pSapCtx, &delStaParams); + WLANSAP_DeauthSta(pCtx, &delStaParams); VOS_TRACE( VOS_MODULE_ID_SAP, VOS_TRACE_LEVEL_INFO_LOW, "size of accept and deny lists %d %d", pSapCtx->nAcceptMac, pSapCtx->nDenyMac); } @@ -1538,7 +1538,7 @@ WLANSAP_ModifyACL eCsrForcedDeauthSta, (SIR_MAC_MGMT_DEAUTH >> 4), &delStaParams); - WLANSAP_DeauthSta(pSapCtx, &delStaParams); + WLANSAP_DeauthSta(pCtx, &delStaParams); VOS_TRACE( VOS_MODULE_ID_SAP, VOS_TRACE_LEVEL_INFO, "... Now add to black list"); sapAddMacToACL(pSapCtx->denyMacList, &pSapCtx->nDenyMac, pPeerStaMac); diff --git a/CORE/SVC/src/nlink/wlan_nlink_srv.c b/CORE/SVC/src/nlink/wlan_nlink_srv.c index fa7afcc756e2..4bd41e41e0ac 100644 --- a/CORE/SVC/src/nlink/wlan_nlink_srv.c +++ b/CORE/SVC/src/nlink/wlan_nlink_srv.c @@ -176,6 +176,10 @@ int nl_srv_ucast(struct sk_buff *skb, int dst_pid, int flag) int nl_srv_bcast(struct sk_buff *skb) { int err; + int flags = GFP_KERNEL; + + if (in_interrupt() || irqs_disabled() || in_atomic()) + flags = GFP_ATOMIC; #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0)) NETLINK_CB(skb).pid = 0; //sender's pid @@ -184,7 +188,7 @@ int nl_srv_bcast(struct sk_buff *skb) #endif NETLINK_CB(skb).dst_group = WLAN_NLINK_MCAST_GRP_ID; //destination group - err = netlink_broadcast(nl_srv_sock, skb, 0, WLAN_NLINK_MCAST_GRP_ID, GFP_KERNEL); + err = netlink_broadcast(nl_srv_sock, skb, 0, WLAN_NLINK_MCAST_GRP_ID, flags); if (err < 0) { |
