summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRandy Chiu <wchiu@qca.qualcomm.com>2014-08-11 12:00:23 +0800
committerAkash Patel <c_akashp@qca.qualcomm.com>2014-08-13 11:31:05 -0700
commitb1aa4e277950995dafcd2254a3a16bdccda4cdb2 (patch)
tree9fefd94b8a2a0c8acfa05b362a330511e36bc4e4
parent50f6a46d215216101513a88fdebc5f2ea7e5e01d (diff)
qcacld: [HDD]: Deadlock happened duing P2P test
The supplicant will show timeout at the GC side while GO firstly doing group remove then GC did remove group immediately. The issue happened while doing flush_scheduled_work in function hdd_smeCloseSessionCallback. The issue will be resolved with WLAN_OPEN_SOURCE macro. Add WLAN_OPEN_SOURCE for usb case and add CONFIG_HAS_WAKELOCK to separate wake_lock related functions for compile issue on linux kernel. Change-Id: I432d7fc4b20ad8400c157f6af8e96a877bab0338 CRs-Fixed: 707406
-rw-r--r--CORE/EPPING/inc/epping_internal.h2
-rw-r--r--CORE/HDD/inc/wlan_hdd_main.h2
-rw-r--r--CORE/HDD/src/wlan_hdd_early_suspend.c2
-rw-r--r--CORE/VOSS/inc/i_vos_lock.h4
-rw-r--r--CORE/VOSS/src/vos_lock.c10
-rw-r--r--CORE/VOSS/src/vos_sched.h2
-rw-r--r--Makefile3
7 files changed, 11 insertions, 14 deletions
diff --git a/CORE/EPPING/inc/epping_internal.h b/CORE/EPPING/inc/epping_internal.h
index dbb92ad79f85..2e1d8a0b2a99 100644
--- a/CORE/EPPING/inc/epping_internal.h
+++ b/CORE/EPPING/inc/epping_internal.h
@@ -46,7 +46,7 @@
#include <linux/spinlock.h>
#include <linux/kthread.h>
#include <linux/semaphore.h>
-#ifdef WLAN_OPEN_SOURCE
+#if defined(WLAN_OPEN_SOURCE) && defined(CONFIG_HAS_WAKELOCK)
#include <linux/wakelock.h>
#endif
#include <wlan_hdd_ftm.h>
diff --git a/CORE/HDD/inc/wlan_hdd_main.h b/CORE/HDD/inc/wlan_hdd_main.h
index aa4681382f32..2bcd15968b81 100644
--- a/CORE/HDD/inc/wlan_hdd_main.h
+++ b/CORE/HDD/inc/wlan_hdd_main.h
@@ -51,7 +51,7 @@
#include <wlan_hdd_wmm.h>
#include <wlan_hdd_cfg.h>
#include <linux/spinlock.h>
-#ifdef WLAN_OPEN_SOURCE
+#if defined(WLAN_OPEN_SOURCE) && defined(CONFIG_HAS_WAKELOCK)
#include <linux/wakelock.h>
#endif
#include <wlan_hdd_ftm.h>
diff --git a/CORE/HDD/src/wlan_hdd_early_suspend.c b/CORE/HDD/src/wlan_hdd_early_suspend.c
index 04deaa45954d..08db44645563 100644
--- a/CORE/HDD/src/wlan_hdd_early_suspend.c
+++ b/CORE/HDD/src/wlan_hdd_early_suspend.c
@@ -45,7 +45,7 @@
#include <linux/cpu.h>
#include <wlan_hdd_includes.h>
#include <wlan_qct_driver.h>
-#ifdef WLAN_OPEN_SOURCE
+#if defined(WLAN_OPEN_SOURCE) && defined(CONFIG_HAS_WAKELOCK)
#include <linux/wakelock.h>
#endif
#include "halTypes.h"
diff --git a/CORE/VOSS/inc/i_vos_lock.h b/CORE/VOSS/inc/i_vos_lock.h
index 2418fdacb0c1..a8fc7f8871e9 100644
--- a/CORE/VOSS/inc/i_vos_lock.h
+++ b/CORE/VOSS/inc/i_vos_lock.h
@@ -46,7 +46,7 @@
#include <linux/spinlock.h>
#include <linux/sched.h>
#include <linux/device.h>
-#ifdef WLAN_OPEN_SOURCE
+#if defined(WLAN_OPEN_SOURCE) && defined(CONFIG_HAS_WAKELOCK)
#include <linux/wakelock.h>
#endif
@@ -73,7 +73,7 @@ typedef spinlock_t vos_spin_lock_t;
#if defined CONFIG_CNSS
typedef struct wakeup_source vos_wake_lock_t;
-#elif defined WLAN_OPEN_SOURCE
+#elif defined(WLAN_OPEN_SOURCE) && defined(CONFIG_HAS_WAKELOCK)
typedef struct wake_lock vos_wake_lock_t;
#else
typedef int vos_wake_lock_t;
diff --git a/CORE/VOSS/src/vos_lock.c b/CORE/VOSS/src/vos_lock.c
index 75e74c4e63c9..be1137d8824e 100644
--- a/CORE/VOSS/src/vos_lock.c
+++ b/CORE/VOSS/src/vos_lock.c
@@ -500,7 +500,7 @@ VOS_STATUS vos_wake_lock_init(vos_wake_lock_t *pLock, const char *name)
{
#if defined CONFIG_CNSS
cnss_pm_wake_lock_init(pLock, name);
-#elif defined WLAN_OPEN_SOURCE
+#elif defined(WLAN_OPEN_SOURCE) && defined(CONFIG_HAS_WAKELOCK)
wake_lock_init(pLock, WAKE_LOCK_SUSPEND, name);
#endif
return VOS_STATUS_SUCCESS;
@@ -519,7 +519,7 @@ VOS_STATUS vos_wake_lock_acquire(vos_wake_lock_t *pLock)
{
#if defined CONFIG_CNSS
cnss_pm_wake_lock(pLock);
-#elif defined WLAN_OPEN_SOURCE
+#elif defined(WLAN_OPEN_SOURCE) && defined(CONFIG_HAS_WAKELOCK)
wake_lock(pLock);
#endif
return VOS_STATUS_SUCCESS;
@@ -538,7 +538,7 @@ VOS_STATUS vos_wake_lock_timeout_acquire(vos_wake_lock_t *pLock, v_U32_t msec)
{
#if defined CONFIG_CNSS
cnss_pm_wake_lock_timeout(pLock, msec);
-#elif defined WLAN_OPEN_SOURCE
+#elif defined(WLAN_OPEN_SOURCE) && defined(CONFIG_HAS_WAKELOCK)
wake_lock_timeout(pLock, msecs_to_jiffies(msec));
#endif
return VOS_STATUS_SUCCESS;
@@ -557,7 +557,7 @@ VOS_STATUS vos_wake_lock_release(vos_wake_lock_t *pLock)
{
#if defined CONFIG_CNSS
cnss_pm_wake_lock_release(pLock);
-#elif defined WLAN_OPEN_SOURCE
+#elif defined(WLAN_OPEN_SOURCE) && defined(CONFIG_HAS_WAKELOCK)
wake_unlock(pLock);
#endif
return VOS_STATUS_SUCCESS;
@@ -576,7 +576,7 @@ VOS_STATUS vos_wake_lock_destroy(vos_wake_lock_t *pLock)
{
#if defined CONFIG_CNSS
cnss_pm_wake_lock_destroy(pLock);
-#elif defined WLAN_OPEN_SOURCE
+#elif defined(WLAN_OPEN_SOURCE) && defined(CONFIG_HAS_WAKELOCK)
wake_lock_destroy(pLock);
#endif
return VOS_STATUS_SUCCESS;
diff --git a/CORE/VOSS/src/vos_sched.h b/CORE/VOSS/src/vos_sched.h
index 71cc495307ca..d3a4dec13421 100644
--- a/CORE/VOSS/src/vos_sched.h
+++ b/CORE/VOSS/src/vos_sched.h
@@ -69,7 +69,7 @@
#include "i_vos_types.h"
#include "i_vos_packet.h"
#include <linux/wait.h>
-#ifdef WLAN_OPEN_SOURCE
+#if defined(WLAN_OPEN_SOURCE) && defined(CONFIG_HAS_WAKELOCK)
#include <linux/wakelock.h>
#endif
#include <vos_mq.h>
diff --git a/Makefile b/Makefile
index 13c8fe13c88e..c05b00f26c57 100644
--- a/Makefile
+++ b/Makefile
@@ -9,9 +9,6 @@ KBUILD_OPTIONS += MODNAME=wlan
LICENSE_FILE ?= $(PWD)/$(WLAN_ROOT)/CORE/HDD/src/wlan_hdd_main.c
WLAN_OPEN_SOURCE = $(shell if grep -q "MODULE_LICENSE(\"Dual BSD/GPL\")" \
$(LICENSE_FILE); then echo 1; else echo 0; fi)
-ifeq ($(CONFIG_ROME_IF),usb)
- WLAN_OPEN_SOURCE = 0
-endif
#By default build for CLD
WLAN_SELECT := CONFIG_QCA_CLD_WLAN=m