summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnjaneedevi Kapparapu <akappa@codeaurora.org>2015-04-21 17:21:36 +0530
committerAnjaneedevi Kapparapu <akappa@codeaurora.org>2015-04-21 17:23:49 +0530
commit67bdc132976db9f58ffe246fbc042a6697d9c882 (patch)
tree9884902d6683c1dada0596e94a02a88751c5b369
parentf0835c338fb6b2962f30e3dabbd9569fed2f108d (diff)
parent4bc5db840117e4053ddf3fa2ac70a942123b33f7 (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.c6
-rw-r--r--CORE/HDD/src/wlan_hdd_ipa.c24
-rwxr-xr-xCORE/HDD/src/wlan_hdd_main.c6
-rw-r--r--CORE/MAC/inc/qwlan_version.h4
-rw-r--r--CORE/MAC/inc/wniApi.h3
-rw-r--r--CORE/SAP/src/sapModule.c4
-rw-r--r--CORE/SVC/src/nlink/wlan_nlink_srv.c6
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)
{