Commit Graph

9194 Commits

Author SHA1 Message Date
Kiran Kumar Lokere
b3d8b5ba88 qcacld-3.0: Add ACS support in 160MHz
Add ACS support in SAP 160MHz mode.

Change-Id: I4893fc25057c64ea13c0297f6d7734415bcadd23
CRs-Fixed: 919904
2015-11-23 13:08:08 -08:00
Varun Reddy Yeturu
0518629d50 qcacld-3.0: Changes for early stop scan
Early stop scan is a feature for roaming to stop the scans at
an early stage as soon as we find a better AP to roam. This
would make the roaming happen quickly.

Apart from sending the configuration items, the host also
has to send down the channel list in a sorted order
to optimize the scans and meet the requirement of this
feature.

This feature is currently applicable only to roaming
scans. However the sorted order of scan list will be
the same used by all the scans.

CRs-Fixed: 932431
Change-Id: I9c7300e4922cb0d517c248bcf60f681a5872a315
2015-11-23 13:08:08 -08:00
Varun Reddy Yeturu
b43fda1ddd qcacld-3.0: PNO Channel prediction
Reduce the number of channels to scan in PNO mode
based on the initial scan memory and the movement
of the client STA using Tanimoto distance

CRs-Fixed: 932355
Change-Id: I1b5448af801fb37324b77cd13c6009f1d859dd61
2015-11-23 13:08:08 -08:00
Mukul Sharma
472382f646 qcacld-3.0: Check privilege permission for SET_PACKET_FILTER
qcacld-2.0 to qcacld-3.0 propagation

Kernel assumes all SET IOCTL commands are assigned with even
numbers. But in our WLAN driver, some SET IOCTLS are assigned with
odd numbers. This leads kernel fail to check, for some SET IOCTLs,
whether user has the right permission to do SET operation.
Hence, in driver, before processing SET_PACKET_FILTER IOCTL, making
sure user task has right permission to process the command.

Change-Id: Ib49c3223eacdc90dfe0d45af1aff7c74518990df
CRs-Fixed: 930937
2015-11-23 13:08:07 -08:00
Mukul Sharma
c7a59f3210 qcacld-3.0: SSR protection for linux/crda reg_notifier api
qcacld-2.0 to qcacld-3.0 propagation

if SSR trigger in middle of execution of linux_reg_notifier
/crda_reg_notifier, driver may access uninitialized data.
Hence Driver need to protect these function from SSR.

Change-Id: I9bdc6851a44fecc8353e94b38eb1dd4f63e58604
CRs-Fixed: 798672
2015-11-23 13:08:07 -08:00
Mukul Sharma
34777c6cf3 qcacld-3.0: Check privilege permission for SET_CHAR_GET_NONE
qcacld-2.0 to qcacld-3.0 propagation

Kernel assumes all SET IOCTL commands are assigned with even
numbers. But in our WLAN driver, some SET IOCTLS are assigned with
odd numbers. This leads kernel fail to check, for some SET IOCTLs,
whether user has the right permission to do SET operation.
Hence, in driver, before processing SET_CHAR_GET_NONE IOCTLs, making
sure user task has right permission to process the command.

Change-Id: I7b060bcdc84f7016e8d301e994437a535533a260
CRs-Fixed: 930935
2015-11-23 13:08:07 -08:00
Mukul Sharma
744420f213 qcacld-3.0: Check privilege permission for QCSAP_IOCTL_DISASSOC_STA
qcacld-2.0 to qcacld-3.0 propagation

Kernel assumes all SET IOCTL commands are assigned with even
numbers. But in our WLAN driver, some SET IOCTLS are assigned with
odd numbers. This leads kernel fail to check, for some SET IOCTLs,
whether user has the right permission to do SET operation.
Hence, in driver, before processing QCSAP_IOCTL_DISASSOC_STA IOCTL,
making sure user task has right permission to process the command.

Change-Id: I00919a56e93b8b49bce7a314b50f9f48039fbe6f
CRs-Fixed: 930946
2015-11-23 13:08:07 -08:00
Mukul Sharma
81661ae7f2 qcacld-3.0: Fix defects detected by Static code analyser
qcacld-2.0 to qcacld-3.0 propagation

Static code analyser detects uninitialized pointer/structure
access and dereferencing a pointer without null check.
As part of this fix host will initialize pointer/structure before
accessing it and put a null check for pointer access.

Change-Id: I5647b36a6ba0e84354d39799bf68a28df633cf20
CRs-Fixed: 836071
2015-11-23 13:08:06 -08:00
Mukul Sharma
51c449481e qcacld-3.0: Do not Update MC list in ftm mode
qcacld-2.0 to qcacld-3.0 propagation

Host should avoid to Update MC list in ftm mode because
as a part of MC list updation, host will access the
pMac roam sessions, as these sessions are not initialized
in FTM mode which lead to Null data access.

Change-Id: I2ac82e76c1c7de8d1bf0fd7e291bf5445e9d0f4b
CRs-fixed: 897871
2015-11-23 13:08:06 -08:00
Mukul Sharma
64a70e8c02 qcacld-3.0: Check privilege permission for SET_VAR_INTS_GETNONE
qcacld-2.0 to qcacld-3.0 propagation

Kernel assumes all SET IOCTL commands are assigned with even
numbers. But in our WLAN driver, some SET IOCTLS are assigned with
odd numbers. This leads kernel fail to check, for some SET IOCTLs,
whether user has the right permission to do SET operation.
Hence, in driver, before processing SET_VAR_INTS_GETNONE, making
sure user task has right permission to process the command.

Change-Id: Icbdfe69c18c1ab3b75d63e046d5251307a794817
CRs-Fixed: 930942
2015-11-23 13:08:06 -08:00
Mukul Sharma
a42b062623 qcacld-3.0: Check privilege permission for QCSAP_IOCTL_SETWPSIE
qcacld-2.0 to qcacld-3.0 propagation

Kernel assumes all SET IOCTL commands are assigned with even
numbers. But in our WLAN driver, some SET IOCTLS are assigned with
odd numbers. This leads kernel fail to check, for some SET IOCTLs,
whether user has the right permission to do SET operation.
Hence, in driver, before processing QCSAP_IOCTL_SETWPSIE IOCTL,
making sure user task has right permission to process the command.

Change-Id: Ie1c945afb0f109892beda66bab25647d70cc62d7
CRs-Fixed: 930944
2015-11-23 13:08:06 -08:00
Mukul Sharma
a5fe19828c qcacld-3.0: Check priviledge permission for SET_BAND_CONFIG IOCTL
qcacld-2.0 to qcacld-3.0 propagation

Kernel assumes all SET IOCTL commands are assigned with even
numbers. But in our WLAN driver, some SET IOCTLS are assigned with
odd numbers. This leads kernel fail to check, for some SET IOCTLs,
whether user has the right permission to do SET operation.
Hence, in driver, before processing SET_BAND_CONFIG IOCTL, making
sure user task has right permission to process the command.

Change-Id: Ie8a36bfa07a7b21601364b27b3c4bc888a6a5b4e
CRs-Fixed: 930952
2015-11-23 13:08:06 -08:00
Mukul Sharma
b315218e7a qcacld-3.0: Handle excessive logging during hostap select queue
qcacld-2.0 to qcacld-3.0 propagation

As a part of unload hdd is stopping the netdev queue.
But still N/W layer 3 is calling the select queue netdev
ops, where error print for sap context is Null appears
excessively.
As a part of this fix hostap select queue need to validate
Hdd context to take care of SSR and load / unload cases.

Change-Id: Id6d93a3a83de7d95a283ff57b6fa2c44f08a9ee3
CRs-Fixed: 857220
2015-11-23 13:08:06 -08:00
Abhishek Singh
10a00267d0 qcacld-3.0:IBSS:Update HT secondary channel offset from beacon in pStaDs
qcacld-2.0 to qcacld-3.0 propagation

While adding pStaDs for IBSS when peer beacon is received, HT
secondary channel offset is not copied from beacon. This leads to
false change capability indication while processing the same beacon
and thus update cb mode is sent with staid 255(default),
leading to crash.

Update HT secondary channel offset from beacon and add a check in
cbmode update to ignore update if staid is 255.

CRs-Fixed: 885747
Change-Id: I66dedb38aadde473b99b2f8fc4a7a9b855a10b2a
2015-11-23 13:08:05 -08:00
Edhar, Mahesh Kumar
35d9b2ed49 qcacld-3.0: Optimize processing of DFS phy events
qcacld-2.0 to qcacld-3.0 propagation

Optimize by avoiding processing of DFS phy events in below scenario's

1)Once radar indication given to UMAC.
2)Vdev restart in SAP interface

Change-Id: Ib175feed4a611a5c7185202e3d50abc3e84fc781
CRs-Fixed: 910586
2015-11-23 13:08:05 -08:00
Edhar, Mahesh Kumar
b0319c4725 qcacld-3.0: synchronize concurrent access of shared variable
qcacld-2.0 to qcacld-3.0 propagation

Currently DFS variables are accessed in different context without
protection leading to NULL pointer dereferences.

Ensure lock is taken before accessing the DFS shared variable.

Change-Id: Ie78dd50ff4b32ef52f78e2944d175a6c10577882
CRs-Fixed: 910586
2015-11-23 13:08:05 -08:00
Yue Ma
e3eaebe339 qcacld-3.0: Do not update WLAN status to LPASS when disconnect during unload
qcacld-2.0 to qcacld-3.0 propagation

Host driver updates WLAN status to LPASS with connected false and WLAN on
when disconnection happens. Host driver also updates WLAN status right
after driver unload is triggered with connected false and WLAN off. There
is a scenario that disconnection callback comes during driver unloading
which causes LPASS misbehavior. Fix this by only updating disconnection
status to LAPSS when driver is not unloading.

Change-Id: Ie72ba094283a64c06e8c74523314d6de92a0f08b
CRs-fixed: 928365
2015-11-23 13:08:04 -08:00
Yue Ma
4ea4f05710 qcacld-3.0: Increase SSR timeout to 30 seconds
qcacld-2.0 to qcacld-3.0 propagation

Increase SSR timeout from 15 seconds to 30 seconds in order to handle
some corner cases which may cause SSR to take longer time. E.g. CPU is
busy/stuck with other tasks.

Change-Id: I6837f2d5e87090ede15e514d1c4f978d34931f32
CRs-fixed: 927722
2015-11-23 13:08:04 -08:00
Yue Ma
d6478e468a qcacld-3.0: Modify bus bandwidth vote criterion
qcacld-2.0 to qcacld-3.0 propagation

If total TX/RX packets are less than bus bandwidth low threshold, there
is no need to vote separately from WLAN side.

Change-Id: I02284d035e58471b3933a84c778d4d44bd6b19ba
CRs-fixed: 918723
2015-11-23 13:08:04 -08:00
Yue Ma
6761d4a63d qcacld-3.0: CL 1359727 1369758 - update fw debug log file
qcacld-2.0 to qcacld-3.0 propagation

- ADD dbglog IDs for WMI TLV parsing.
- Add ROAM_STA_KICKOUT_RECV dbglog ID.

Change-Id: I3fdae0def4a99f75bbe9a8d772d7a61fa10ee7d5
CRs-fixed: 908561
2015-11-23 13:08:04 -08:00
Yue Ma
455aff67e9 qcacld-3.0: Ignore VOS_BUG if recovery is already going on during suspend
qcacld-2.0 to qcacld-3.0 propagation

There is no need for host driver to do VOS_BUG if FW has already requested
recovery during suspend.

Change-Id: I0c77210316fea978fe686201f42b9501612e9a1e
CRs-fixed: 904909
2015-11-23 13:08:04 -08:00
Yue Ma
e1a85f39d1 qcacld-3.0: Recover if fail to receive HTC ACK from FW for PDEV suspend
qcacld-2.0 to qcacld-3.0 propagation

If self-recovery is enabled in ini file, recover if host driver fails to
receive HTC ACK from FW for PDEV suspend, otherwise do VOS_BUG.

Change-Id: Ieddb22c5806067ec1a1166b60e1642e6cdf74a4c
CRs-fixed: 894187
2015-11-23 13:08:03 -08:00
Yue Ma
cd9614433f qcacld-3.0: Fix several SSR related issues
qcacld-2.0 to qcacld-3.0 propagation

- Kill wlan_tasklet before freeing TLshim free queue. This can avoid
  race condition between SSR and wlan_tasklet which is still processing
  Rx packets in the case of self-recovery when FW doesn't really crash.

- In additional to connected state, add disconnected/disconnecting states
  to send notification to supplicant for re-issuing connect after SSR.
  This is to avoid corner cases that while FW crashes, disconnection is
  happening or disconnection fails because of FW crash, the HDD state is
  changed from connected to disconnecting/disconnected.

Change-Id: I8ff295a443e946e8775354dcf4331ad024776cb7
CRs-fixed: 899479
2015-11-23 13:08:03 -08:00
Satish Singh
3db7cbb316 Release 5.0.0.145
Release 5.0.0.145

Change-Id: Ie54534d6ea7b031527ab261ac97025d6728714cd
CRs-Fixed: 688141
2015-11-22 15:04:46 -08:00
Prakash Dhavali
ceec5c5784 Enable WLAN driver build from qcacld-3.0 oss path
Enable WLAN driver build from qcacld-3.0 oss path.

Change-Id: Ibe10a8a0b5fc45551fdb2fed82f4eea4b48c9c56
2015-11-22 15:04:46 -08:00
Chandrasekaran, Manishekar
19c6cb5282 qcacld-3.0: Reset global saved command to avoid double free
Reset the global saved scan command to avoid double free.
In sme_process_set_hw_mode_resp(), after freeing the local
saved_cmd pointer, the global mac->sme.saved_scan_cmd is
not reset to NULL. This ends up in double free in
csr_scan_complete()->csr_handle_nxt_cmd() where we are
still holding a stale pointer.

CRs-Fixed: 941130
Change-Id: Ibb93b8d8e601936c7996518f21646e2c140cbd20
2015-11-22 15:04:46 -08:00
Ratnam Rachuri
afc06d5699 qcacld-3.0: make non-interruptable wait for Tlshim Rx shutdown
qcacld-2.0 to qcacld-3.0 propagation

replace wait_for_completion_interruptible with wait_for_completion
to do Tlshim Rx shutdown with non-interruptible call.

Change-Id: I09a70fd2818db42401ba2ca91a75244c1f07557e
CRs-Fixed: 820482
2015-11-22 15:04:46 -08:00
Ratnam Rachuri
20902cacbd qcacld-3.0: Code refactoring in SAP start
qcacld-2.0 to qcacld-3.0 propagation

This fix removes redundant cdf_mem_zero and cdf_mem_copy

Change-Id: I757a2e14358403b7950868fd81d8e58ab3f829df
CRs-Fixed: 796971
2015-11-22 15:04:46 -08:00
Ratnam Rachuri
f61614c134 qcacld-3.0: Reduce log level from pr_err to pr_info
qcacld-2.0 to qcacld-3.0 propagation

Reduce log level from pr_err to pr_info to avoid excessive logging
in wlan_queue_logmsg_for_app fn.

Change-Id: I10b728d9fc0c46ca4b4a38a6b060f25cad124207
CRs-Fixed: 840477
2015-11-22 15:04:46 -08:00
Peng Xu
832d18d6a7 qcacld-3.0: Fix second P2P-GO interface fail to startup issue
For P2P GO + GO concurrency cases, the second P2P GO interface failed
to startup due to the incorrect checkings in the driver code for GO
interface. This fixes the condition checking logic.

Change-Id: I1a8a1b3dd4eed9dd8c824241d7b1759751e53a18
CRs-fixed: 938850
2015-11-22 15:04:45 -08:00
Bhargav Shah
b557ad865d qcacld: Add support to enable/disable logging for all missing modules.
qcacld-2.0 -> qcacld-3.0 propagation

Add support to enable and disable logging for all missing modules
from INI.

Change-Id: I1677a2db48193b1130e0fc07e8bdfc42823d3567
CRs-Fixed: 855168
2015-11-22 15:04:45 -08:00
Bhargav Shah
2027e1dc9d wlan: Fix for redundant TDLS log during scan_done callback
qcacld-2.0 to qcacld-3.0 propagation

In wlan_hdd_tdls_check_bmps(), NULL check for pHddTdlsCtx will be
TRUE if TDLS support is not enabled. This leads to redundant logs,
as this is called for every scan_done callback.
Call wlan_hdd_tdls_scan_done_callback() only when TDLS support is
enabled.

Change-Id: Ice6f8fb1dc64f0669c19a9b5f5ce3d23c8cdc11c
CRs-Fixed: 672099
2015-11-22 15:04:45 -08:00
Yun Park
2570c563c8 qcacld-3.0: Fix WDI pipe enable failure due to double invoke
qcacld-2.0 to qcacld-3.0 propagation

Fix an issue which enables WDI pipes even when RM resource request
failed,  which will cause to invoke WDI pipe enable twice when RM_
RESOURCE_GRANTED notification arrives later.
Also fixed a possible discrapancy between connected client stat count
and actual  number of connected clients.

Change-Id: Ibb86ef6ada398fcc669e3a894daadc09e6096b0f
CRs-fixed: 927581
2015-11-22 15:04:45 -08:00
Yun Park
6532aa21c5 qcacld-3.0:IPA-uC: Check IPA pipes are up before disable it when SSR deinit
qcacld-2.0 to qcacld-3.0 propagation

When SSR happens, IPA WDI pipes may not be enabled yet,
so need to check if it up before disable it.

Change-Id: I5ff643fcf9804dc0933105079f0653884f7d63dc
CRs-Fixed: 938605
2015-11-22 15:04:45 -08:00
Yun Park
294a83162a qcacld-3.0: IPA uC: Return EPERM for RM CONS REQ only during unloading
qcacld-2.0 to qcacld-3.0 propagation

Change to return -EINPROGRESS if WLAN unable to grant IPA CONS resource
due to IPA resource loading is in progress.
Return -EPERM only if WLAN unable to grant IPA CONS resource due to
IPA resource unloading is in progress.

Change-Id: Iea4d804d3f81b086e723230fb8eddc7d9561d7d1
CRs-Fixed: 926880
2015-11-22 15:04:45 -08:00
Govind Singh
8f88538e87 qcacld-3.0: Add FW Profiling support
Add Profiling stats support in HOST driver to
have CPU based profiling for critical data
path functions in FW.

Change-Id: Ib6d4f0b220f622cf304536c8e538d4dc34c6434b
CRs-Fixed: 921950
2015-11-22 15:04:45 -08:00
Govind Singh
f388897d37 qcacld-3.0: IPv6 packets classification support
Enable classification of IPv6 frames based on the
traffic class field in the IPv6 header.

Change-Id: I4114cb972f61b75da35a225c07f7628d748a744c
CRs-Fixed: 921955
2015-11-22 15:04:45 -08:00
Houston Hoffman
ab1ce349fd qcacld-3.0: Record log timestamp type
Log timestamp can come from Qtimer or the system timer.
Record the source in a global variable that will be dumped
with the logs.

Change-Id: Ib168cfdc874426e48b12aac89f00d81ffe9e7fa6
CRs-Fixed: 940773
2015-11-22 15:04:45 -08:00
Houston Hoffman
ad98bf17dc qcacld-3.0: Route logging through CDF_TRACE
AR_print and cdf_print macros were not logging to the driver log.

Change-Id: I11bc86f6c8ee91866c8e27903eaa15966111ce62
CRs-Fixed: 940770
2015-11-22 15:04:44 -08:00
DARAM SUDHA
f66ffc8d78 qcacld-3.0: debug check for l_rx_defrag_waitlist_remove
qcacld-2.0 to qcacld-3.0 propagation

while wlan disconnection is happening, in the process of peer-cleanup
check for tqu->prev to be non-null before calling TAILQ_REMOVE.

Change-Id: I5841dfe80b954bdfac5147f5e3e3661cc85ba4b1
CRs-Fixed: 836447
2015-11-22 15:04:44 -08:00
DARAM SUDHA
88a8cf2817 qcacld-3.0: Set tfm to NULL to avoid freeing in crypto_free_cipher
qcacld-2.0 to qcacld-3.0 propagation

tfm is invalid when alloc fails. Set tfm to NULL to avoid freeing
the crypto transform in crypto_free_cipher()->crypto_destroy_tfm.

Change-Id: I3261377f3a7b6ab5740d4144be9e84a1a3a07e42
CRs-Fixed: 809085
2015-11-22 15:04:44 -08:00
DARAM SUDHA
7a003f67bd qcacld-3.0: apply vos_assert in vostimer APIs, in uninitialized case
qcacld-2.0 to qcacld-3.0 propagation

As a debug enhancement, call vos_assert in vos timer APIs, when
API fails because of unintialization.

Change-Id: Ib7d4c7995a60b23413eead4603b38ff89ff48715
CRs-Fixed: 810282
2015-11-22 15:04:44 -08:00
DARAM SUDHA
d11e84cc72 qcacld-3.0: Print signature on kernel logs when user triggers SSR by iwpriv
qcacld-2.0 to qcacld-3.0 propagation

Currently driver logs are routed as messages to CNSS_DIAG so the
Kernel does not print them into the Kernel log. Add a debug print
to display in kernel log when ever the SSR is triggered using iwpriv.

In dog-food testing, this print would help to separate out the
user-triggered SSR scenarios.

Change-Id: I58f247a26e802bced0c226ee92052ca0d69e1554
CRs-Fixed: 844938
2015-11-22 15:04:44 -08:00
DARAM SUDHA
61adec9d5d qcacld-3.0: Reduce the log level for debug print in softap_xmit
qcacld-2.0 to qcacld-3.0 propagation

Reduce the error log level for LOGP in Progress in
hdd_softap_hard_start_xmit to avoid WD bark

Change-Id: I1be5db2eb9b59f22f735f9c21eeac9a81bb246f5
CRs-Fixed: 824309
2015-11-22 15:04:44 -08:00
DARAM SUDHA
910da118e4 qcacld-3.0: Add debug code to rootcause command timeout issue.
qcacld-2.0 to qcacld-3.0 propagation

when EXIT_BMPS is pending in activeList, it causes crash
with excess logging for RoamPending list. In this scenario
gTraceTbl has lost SME details due to other MTRACE commands.
Because of which, the issue is not rootcaused.

Add below changes to rootcause if the issue appears again:
1. print only first 5 commands from roamPendingList
2. Bug_on if the commandlist is full
3. Add MTRACE for PMC commands

CRs-Fixed: 833261
Change-Id: Id5bb399c4a8c8e84ddfa121a66881e3ecb901b05
2015-11-22 15:04:44 -08:00
Satish Singh
e8d85ee2fc Release 5.0.0.144
Release 5.0.0.144

Change-Id: I1e50bb41f68810fd11d60b82877a1d7c1745505e
CRs-Fixed: 688141
2015-11-22 15:04:44 -08:00
Manjunathappa Prakash
c25d3338b6 qcacld-3.0: Enable fastpath INI variable
Enable the fastpath for data traffic.

Change-Id: I77dab02c579a48862287dba629785e3c8bb6b6ac
CRs-Fixed: 935974
2015-11-22 15:04:44 -08:00
Krishna Kumaar Natarajan
c2dff54701 qcacld-3.0: Remove Radio measurement related cfg entries
qcacld-2.0 to qcacld-3.0 propagation

Remove cfg entries related to radio measurement(RM).

We have support to enable/disable RM capability through INI config.
We also had entry in cfg static table(cfg.dat). This change set
will remove entries related to RM.

Change-Id: Ic56cc34628cd1c0fb10512069ef6dc5f0eebb887
CRs-Fixed: 924420
2015-11-22 15:04:44 -08:00
Krishna Kumaar Natarajan
3e032e9a3d qcacld-3.0: Set RM capability independent of AP's capability
qcacld-2.0 to qcacld-3.0 propagation

Remove check for AP's capability information to set station's
radio measurement(RM) capability in Capability Information element.

Change-Id: I6047d4dec19e7cd32d6733e4da773875bbbb31aa
CRs-Fixed: 924420
2015-11-22 15:04:43 -08:00
Krishna Kumaar Natarajan
a7776a9fdd qcacld-3.0: Support to configure RM enabled capability IE
qcacld-2.0 to qcacld-3.0 propagation

Add support to configure RM enabled capbility information element
through INI.

Using the introduced INI config option(rm_capability), we can set
or unset any bit in the IE. Default value for the config parameter
is set based on rrmInitialize routine.

Change-Id: Ia2a4352760db77ab71dad4757eb603d7539ffefa
CRs-Fixed: 918667
2015-11-22 15:04:43 -08:00