Commit Graph

10357 Commits

Author SHA1 Message Date
Orhan K AKYILDIZ
c409461034 cld-3.0: Remove warnings issued by static analysis
Some of these are very remote scenarios (like HIF not being
initialized at the time of the calls, which could then
dereference a NULL pointer). There are a few cases of looping
beyond boundaries.

The scope of this update is limited to NAPI related code.

Change-Id: I60229406d5ab514d5465ef2569324d3d4eb430d4
CRs-Fixed: 938253
2015-11-25 17:26:48 -08:00
Chandrasekaran, Manishekar
96c9096523 qcacld-3.0: Fix channel width assignment to improper enum value
Fix the channel width of type 'enum hw_mode_bandwidth' getting
wrongly assigned to enum of type 'tSirWifiChannelWidth'. The
tag values of each of these enums are different.

CRs-Fixed: 942090
Change-Id: Ic3610e6fcb7c89f0aeed829b83869169f4596ce8
2015-11-25 17:26:48 -08:00
mukul sharma
72c8b22a2d qcacld-3.0: Add support for 11w offload feature
This change Adds 11w offload feature, This change includes:

1. SA Query time out Kickout reason handling
2. Add a new service bit map for 11w offload and cache it to pMAc
3. Error logging in following unexpected case
   a) Unprotected deauth / diasssoc from peer AP,
   b) reception of SA query action frame in SAP / STA vde mode
4. Configure sta sa query related parameters as a part of
   sta vdev attach
5. Trim mmie for pmf bcast/mcast mgmt frames

Change-Id: If119e9a79185552e163834f7c6c3a14288fe2761
CRs-Fixed: 931630
2015-11-25 17:26:48 -08:00
Rajeev Kumar
e0fd9dda71 qcacld-3.0: Enable full rx reorder offload for adrastea
- In current qcacld-3.0 driver full rx reorder offload is dependent
  on HIF_PCI feature flag.
- HIF_PCI feature flag is compiled out for SNOC devices like adrastea.
- Because of RX reorder dependency on HIF_PCI host data path is broken
  on adrastea.
- Enable rx reorder offload for SNOC devices(adrastea).

Change-Id: I445afa57fb5fc45363ca644a35ae15e4af5bf94a
CRs-Fixed: 939890
2015-11-25 17:26:48 -08:00
Sanjay Devnani
a64b512a9e qcacld-3.0: Check if unload is in progress during suspend
If unload in progress, abort suspend. causes null pointer ref otherwise

Change-Id: I7028b6f0efc9da62352b561e9def90ff9bffd5e6
CRs-Fixed: 878755
2015-11-25 17:26:47 -08:00
Sreelakshmi Konamki
6bd8a2e02b qcacld-3.0: Remove redundant code in __wlan_hdd_cfg80211_connect()
qcacld-2.0 to qcacld-3.0 propagation

Make changes to invoke wlan_hdd_cfg80211_connect_start() one time instead
of two instances of invoking the same function using local variables.

Change-Id: I2aba87645296414f340c89b6bd2f556b05f05115
CRs-Fixed: 898565
2015-11-25 17:26:47 -08:00
Hanumantha Reddy Pothula
2db50edd69 qcacld-3.0: wlan: Cleanup North-Bound load/unload logs
qcacld-2.0 to qcacld-3.0 propagation

If IOCTLs or CFG callbacks are issued continuously during driver
load/unload or during SSR, observing stability issues because of
excessive logging.
Hence move log level to INFO from ERROR in wlan_hdd_validate_context
function and don't print return status in its caller functions.

Change-Id: I8fd9b25e0c774e1e12b01128eb86783c9dec2ab7
CRs-Fixed: 800631
2015-11-25 17:26:47 -08:00
Sreelakshmi Konamki
75deb33157 qcacld-3.0: Add DS param IE in probe req frame
qcacld-2.0 to qcacld-3.0 propagation

Currently DS param IE is not present in probe req frames.
Set bit11 in scan_ctrl_flags to add DS param IE in probe req.

Change-Id: I57f79bd6dc5bd452987cb7d09cafa425ea2bbff4
CRs-Fixed: 905421
2015-11-25 17:26:47 -08:00
Sreelakshmi Konamki
6744cffe00 qcacld-3.0: Add MTRACE logs for missing cfg80211_ops callbacks
qcacld-2.0 to qcacld-3.0 propagation

Currently, MTRACE logs are not captured for few cfg80211_ops callbacks
and SME functions. Add missing MTRACE logs in cfg80211_ops callbacks
before calling SME function and also in few SME functions.

Change-Id: Iced4b80de60f9640cad0342afac57f9a17c2a3e2
CRs-Fixed: 859961
2015-11-25 17:26:47 -08:00
Sreelakshmi Konamki
6f3a865a2b qcacld-3.0: wlan: Remove redundant validation of pAdapter
qcacld-2.0 to qcacld-3.0 propagation

Validation of pAdapter done in starting of hdd_smeRoamCallback().
Remove redundant pAdapter validation under flag eCSR_ROAM_SESSION_OPENED.

Change-Id: I1619bc929e484a60a930779a2acae071a710453a
CRs-Fixed: 898391
2015-11-25 17:26:47 -08:00
Sreelakshmi Konamki
32eadb109e qcacld-3.0: wlan: Deregister all the peers from TL during IBSS leave
qcacld-2.0 to qcacld-3.0 propagation

If user change the BSSID/SSID and restart the IBSS network, during
IBSS leave the driver deletes only the 1st peer and all other
entries are not deleted. Now when the IBSS restarts and try to
register a sta with the staID which is already present in the
stale entries, the registeration fails and thus the BSSID values
in TL are not updated for all these stale peers. Due to this the
data to these peers uses the old BSSID.
This change take care of Deregistering all the active IBSS peers
during IBSS leave.

Change-Id: Id1ce0ffd880b8c2c8afd46414a59ba7bb87d5b6f
CRs-Fixed: 841565
2015-11-25 17:26:47 -08:00
Sreelakshmi Konamki
945541391b qcacld-3.0: remove misprint in ol_txrx_peer_find_add_id()
qcacld-2.0 to qcacld-3.0 propagation

During create peer, 'delete peer' print is coming from
ol_txrx_peer_find_add_id(). Peer deletion is not happened when
ol_txrx_peer_find_add_id() calls ol_txrx_peer_unref_delete().
Actual peer deletion is happening in ol_rx_peer_unmap_handler().
So, remove 'delete peer' print in ol_txrx_peer_find_add_id().

Change-Id: If37a573f6ff734743c3901b96c7134c81b35e4c7
CRs-Fixed: 902463
2015-11-25 17:26:47 -08:00
Nirav Shah
47062ff40e qcacld-3.0: CL 1409457 - update fw common interface files
qcacld-2.0 to qcacld-3.0 propagation

Add WMI_PDEV_PARAM_TXPOWER_DECR_DB, WMI_VDEV_PARAM_TXPOWER_SCALE,
and WMI_VDEV_PARAM_TXPOWER_SCALE_DECR_DB

CRs-Fixed: 934137
Change-Id: I0468afc4cb89d21bda82a6a8b14eac66ed7cc6cb
2015-11-25 17:26:47 -08:00
Nirav Shah
e1e4a81700 qcacld-3.0: CL 1408339 - update fw common interface files
qcacld-2.0 to qcacld-3.0 propagation

Adding PDEV Param to Enable/Disable CTS2Self for
P2P GO when Non-P2P Client is connected.

CRs-Fixed: 934124
Change-Id: Ib85e7e5f076db54203b170d34992c439d52983a2
2015-11-25 17:26:47 -08:00
Nirav Shah
3650780ece qcacld-3.0: Do not lock to free all packets to avoid watchdog bark
Propagation from qcacld-2.0 to qcacld-3.0

Do not take single lock to free all TLSHIM packets
to avoid watchdog bark during driver unload.

CRs-Fixed: 934555
Change-Id: Iebfb449bd8174bc27207d33073c84a8f11d6e490
2015-11-25 17:26:47 -08:00
Nirav Shah
439e626abf qcacld-3.0: CL 1407588 - update fw common interface files
qcacld-2.0 to qcacld-3.0 propagation

WMI_ROAM_SYNCH_EVENT cleanup

CRs-Fixed: 932665
Change-Id: Iaf25497b2f511e03823894084b6920be79ca2dba
2015-11-25 17:26:47 -08:00
Hanumantha Reddy Pothula
616dfbe6fc qcacld-3.0: Update MCS index appropriately
qcacld-2.0 to qcacld-3.0 propagation

When AP is configured with MCS index less than 4(43Mbps) then Host
reports invalid MCS Index to upper-layer, leading to display invalid
link speed on GUI.
Updating MCS index with valid value and thereby updating correct MCS
index to upper-layer

Change-Id: Ibd1503be3825c879b7fa52bdfb6ff07423c39023
CRs-Fixed: 855022
2015-11-25 17:26:46 -08:00
Hanumantha Reddy Pothula
5090805f15 qcacld-3.0: Return NULL if zero is passed as argument to allocate memory
qcacld-2.0 to qcacld-3.0 propagation

While allocating memory if zero is passed as argument then kernel will
return address ZERO_SIZE_PTR(0x10) leading to pass NULL check, which is
usually done after every memory allocation. Hence when zero is passed to
allocate memory then return NULL without calling kmalloc.
While initializing neighbor roam data structure, don't allocate memory
if neighbor roam channel list is empty.

Change-Id: I50bdb99a0cd8ccbc2d764b8ac21f66bba8a8fdc4
CRs-Fixed: 815664
2015-11-25 17:26:46 -08:00
Hanumantha Reddy Pothula
3b8c0a5ba8 qcacld-3.0: Check priviledge permission for SET_CHANNEL_RANGE
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_CHANNEL_RANGE IOCTL,
making sure user task has right permission to process the command.

Change-Id: I48bcd55bee45203667bcc679db4ad96aa9e04b7c
CRs-Fixed: 930555
2015-11-25 17:26:46 -08:00
Govind Singh
e55e699ade qcacld-3.0: Fix static code analysis errors
qcacld-2.0 to qcacld-3.0 propagation

Updated the wma, htt modules to address the
issues reported by static code analysis.

CRs-Fixed: 933728
Change-Id: I3437f7d9a12475f4a854412d9f34f48ed7553848
2015-11-25 17:26:46 -08:00
Govind Singh
f139e83f8e qcacld-3.0: clean up of ERROR logs
qcacld-2.0 to qcacld-3.0 propagation

Misleading error logs are removed
as part of this fix

CRs-Fixed: 929840
Change-Id: Ifdc10b79359863a4f3c2009403ee5f6c7ab18110
2015-11-25 17:26:46 -08:00
Xun Luo
a858a47ead qcacld-3.0: clear WMI work queue before bus context destruction
qcacld-2.0 to qcacld-3.0 propagation

All WMI work queue should be cleared and processing stopped before
bus context destruction. This change enforces this rule.

Change-Id: I2e12f3f08424f718ec66fe257060ce13de17ee4e
CRs-Fixed: 840422
2015-11-25 17:26:46 -08:00
Houston Hoffman
4c9607b607 qcacld-3.0: Bypass hif_completion_thread in fw event
We want to process the completions in parallel.
Upper layer should take care of its own thread safety.
hif_completion_thread is a legacy function that does in
context serialization of hif completions. Bypass it.

Change-Id: I73b8518d87645d827814cd1345eb68370de30d1f
CRs-Fixed: 941358
2015-11-25 17:26:46 -08:00
Houston Hoffman
bada641804 qcacld-3.0: Bypass hif_completion_thread in send
We want to process the completions in parallel.
Upper layer should take care of its own thread safety.
hif_completion_thread is a legacy function that does in
context serialization of hif completions. Bypass it.

Change-Id: I19660327ebb4a3cbb9908ce562ab6c72a6282e95
CRs-Fixed: 941358
2015-11-25 17:26:46 -08:00
Himanshu Agarwal
94045e429d qcacld-3.0: Fix static code analysis errors
Propagation from qcacld-2.0 to qcacld-3.0

Updated the wma, pe module to address the issues reported by static code
analysis.

Change-Id: I8666adf161225014108c189cbcffced9450ae0c4
CRs-Fixed: 889019
2015-11-25 17:26:46 -08:00
Karthick S
7a17a71bb0 qcacld-3.0: Free protection_fields_reset_timer
qcacld-2.0 to qcacld-3.0 propagation

Free protection_fields_reset_timer in the beginning of peDeleteSession
function to avoid the null defreference caused due to the race condition
between peDeleteSession and pe_reset_protection_callback.

Change-Id: I1b83977bb3683d6dd87ec94a992ac51f39cd97db
CRs-Fixed: 815796
2015-11-25 17:26:46 -08:00
Karthick S
cbb555aa3f qcacld-3.0: Stop HIF service before HTC cleanup
HIFStart is called from HTCWaitTarget in the vos_open function. If
vos_open fails later, the HIFStop is not called to cleanup what is done
in the HIFStart. This change fixes this issue.

qcacld-2.0 to qcacld-3.0 propagation

Git-commit:98808985fb6037c6f33af396aae38224f91c8b4d

Change-Id: Id30f41d953e4582db57a98fff14e3f68447239f1
CRs-Fixed: 831608
2015-11-25 17:26:46 -08:00
Mukul Sharma
f8511dcee4 qcacld-3.0: Avoid SSR injection when driver load is in progress
Propagation qcacld-2.0 to qcacld-3.0

Host avoid SSR injection ioctl using hdd->isLoadInProgress,
But ol_target_failure handler checks for the
cds_set_load_unload_in_progress. As these two flags are not
set back to back so there is possible time window in which
SSR ioctl is allowed but ol target failure handling is not
allowed.

Change-Id: Ib97d3693f82f6ca94fa048a8120786065e99087a
CRs-Fixed: 913741
2015-11-25 17:26:46 -08:00
Karthick S
571df0e4e9 qcacld-3.0: Add NULL sanity check for HTC_HANDLE
qcacld-2.0 to qcacld-3.0 propagation

System crash happened due to accessing NULL pointer in HTCSendPkt.
so added null sanity check to prevent this scenario.

Change-Id: I4c07840eb176847c4a66efc42cd810213e1369b0
CRs-Fixed: 838998
2015-11-25 17:26:45 -08:00
Karthick S
c40696df00 qcacld-3.0: set proc_dir to NULL
qcacld-2.0 to qcacld-3.0 propagation

In athdiag_procfs_remove, set proc_dir to NULL after removing the
directory. This is to avoid trying to remove the directory which is
already removed.

Change-Id: I01526f4b59ccc991d157c1028d4df5904338f182
CRs-Fixed: 868965
2015-11-25 17:26:45 -08:00
Mukul Sharma
156278d9b8 qcacld-3.0: prevent double free of ft pre auth response
Propagation qcacld-2.0 to qcacld-3.0

while processing ft pre auth response, if memory allocation fails
then host is not setting psavedFTPreAuthRsp to null. Later sme is
freeing same memory as freeing pMsg->bodyptr. Hence on next
disconnect, sme_FtReset try to free psavedFTPreAuthRsp which is
already free.
As a part of this fix, host ensure to set psavedFTPreAuthRsp
Null in all cases.

Change-Id: I144786cd4206bf273d2ffa63889af109cd2744dd
CRs-Fixed: 916416
2015-11-25 17:26:45 -08:00
Abhishek Singh
1bdb157ba5 qcacld-3.0: Implement ECSA Action Frame
qcacld-2.0 to qcacld-3.0 propagation

Implement:
1. Send & receive logic of ECSA action frame from P2P-CLI/GO
2. Trigger channel change on P2P GO side once ECSA action frame
   is received by,
  i) Adding CSA & ESCA IE in beacon template and updating FW to
     send it out .
  ii) Notifying supplicant of channel change for P2P GO.

This change include HDD changes

CRs-fixed: 895240
Change-Id: Iea66ddbbb8946443d5e701e3c14b2f33c6bb6bf8
2015-11-25 17:26:45 -08:00
Abhishek Singh
518323d9c0 qcacld-3.0: Implement ECSA Action Frame
qcacld-2.0 to qcacld-3.0 propagation.

Implement:
1. Send & receive logic of ECSA action frame from P2P-CLI/GO
2. Trigger channel change on P2P GO side once ECSA action frame
   is received by,
  i) Adding CSA & ESCA IE in beacon template and updating
     FW to send it out
  ii) Notifying supplicant of channel change for P2P GO.

This change include UMAC changes.

CRs-fixed: 895240
Change-Id: Ie6c9154fb44ec75c699e37aaba660c637869c099
2015-11-25 17:26:45 -08:00
Naveen Rawat
cf7d2d56b0 qcacld-3.0: Allow dwell time for PNO scan control through config.ini
This is qcacld-2.0 to qcacld-3.0 propagation

Currently dwell time for PNO scan is passed as 0 to FW irrespective of
values set in config.ini. This patch allows active/passive dwell time
for PNO scan to be controlled by config.ini param.

Change-Id: I5562ed7e176af04ac8f38aa5af97257b9244cdc1
CRs-Fixed: 922054
2015-11-25 17:26:45 -08:00
Naveen Rawat
318fce978c qcacld-3.0: Allocate for cfg int and str buffer dynamically
This is pass 2 of cfg mechanism enahancement. With this patch cfg int
and cfg str buffer are allocated dynamically so no need to maintain
CFG_STA_IBUF_MAX_SIZE and CFG_STA_SBUF_MAX_SIZE manually.

Change-Id: I0f8cb942e93236546aad9963c9451e0399a251ac
CRs-Fixed: 914157
2015-11-25 17:26:45 -08:00
Naveen Rawat
b4d37620f3 qcacld: Fix layering violation in __wlan_hdd_cfg80211_ocb_start_timing_advert()
This is qcacld-2.0 to qcacld-3.0 propagation

HDD directly calls in to MAC layer function with mac context as one
of the parameters which is a software layering violation.
Fix the issue by introducing a SME api which accepts hal handle as
one of the parameters instead of mac context and call the SME function
from HDD,  which calls the MAC api with correct function parameters.

Change-Id: Iaac4ad7b67b0cb0f7b8b0d08e32904833afad707
CRs-Fixed: 913015
2015-11-25 17:26:45 -08:00
Naveen Rawat
e702e9b12b qcacld-3.0: HT20 Protection Mode
HT_PURE mode indicates either only HT20 STAs are connected
to a HT20 only SAP or HT20/40 STAs are connected to HT20/40
SAP. Otherwise its HT20 protection mode. This patch fixes code
to work accroding to this condition correctly.

Change-Id: Ib431209f5dfc8800d0932752a282c954f0228503
CRs-Fixed: 866447
2015-11-25 17:26:45 -08:00
Naveen Rawat
9e4872aa79 qcacld-3.0: Fix for hidden SSID iwpriv command.
This is qcacld-2.0 to qcacld-3.0 propagation

In lim function to process hidden SSID, current code was treating
SME sessionID as PE sessionID and hence find session entry for that
was failing. This patch fixes this by using correct "find pe session"
API, that finds PE session by using SME session ID.

Change-Id: I72286cd54a41ae9c01bd916bb0156dd3131eb71c
CRs-Fixed: 934870
2015-11-25 17:26:44 -08:00
Satish Singh
7137db3b56 Release 5.0.0.145
Release 5.0.0.145

Change-Id: Ie54534d6ea7b031527ab261ac97025d6728714cd
CRs-Fixed: 688141
2015-11-23 13:09:11 -08:00
Chandrasekaran, Manishekar
49d21a4c88 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-23 13:09:11 -08:00
Ratnam Rachuri
12553c61f6 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-23 13:09:11 -08:00
Ratnam Rachuri
f47dfdffca 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-23 13:09:11 -08:00
Ratnam Rachuri
3c5dd4131d 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-23 13:09:11 -08:00
Peng Xu
45486ea83e 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-23 13:09:11 -08:00
Bhargav Shah
480a90f597 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-23 13:09:11 -08:00
Bhargav Shah
1efa55ca9d 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-23 13:09:11 -08:00
Yun Park
4cab6ee4be 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-23 13:09:11 -08:00
Yun Park
f7dc8cd956 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-23 13:09:10 -08:00
Yun Park
4d8b60a777 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-23 13:09:10 -08:00
Govind Singh
a471e5e2ad 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-23 13:09:10 -08:00