From b1aa4e277950995dafcd2254a3a16bdccda4cdb2 Mon Sep 17 00:00:00 2001 From: Randy Chiu Date: Mon, 11 Aug 2014 12:00:23 +0800 Subject: 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 --- CORE/EPPING/inc/epping_internal.h | 2 +- CORE/HDD/inc/wlan_hdd_main.h | 2 +- CORE/HDD/src/wlan_hdd_early_suspend.c | 2 +- CORE/VOSS/inc/i_vos_lock.h | 4 ++-- CORE/VOSS/src/vos_lock.c | 10 +++++----- CORE/VOSS/src/vos_sched.h | 2 +- Makefile | 3 --- 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 #include #include -#ifdef WLAN_OPEN_SOURCE +#if defined(WLAN_OPEN_SOURCE) && defined(CONFIG_HAS_WAKELOCK) #include #endif #include 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 #include #include -#ifdef WLAN_OPEN_SOURCE +#if defined(WLAN_OPEN_SOURCE) && defined(CONFIG_HAS_WAKELOCK) #include #endif #include 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 #include #include -#ifdef WLAN_OPEN_SOURCE +#if defined(WLAN_OPEN_SOURCE) && defined(CONFIG_HAS_WAKELOCK) #include #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 #include #include -#ifdef WLAN_OPEN_SOURCE +#if defined(WLAN_OPEN_SOURCE) && defined(CONFIG_HAS_WAKELOCK) #include #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 -#ifdef WLAN_OPEN_SOURCE +#if defined(WLAN_OPEN_SOURCE) && defined(CONFIG_HAS_WAKELOCK) #include #endif #include 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 -- cgit v1.2.3