qcacld-2.0 to qcacld-3.0 propagation
In Stop Adapter IBSS mode is not handled properly and
no DEL BSS is sent for the connected IBSS before DEL SELF STA.
This may lead to crash in FW.
As part of fix handle the IBSS mode and send DEL BSS if IBSS is
connected.
Change-Id: Ice1304aced1a158c7b589a95337412cda0183a04
CRs-Fixed: 908990
qcacld-2.0 to qcacld-3.0 propagation
If deauth is received just after Assoc rsp from AP in addSTA
response Re/assoc confirm is sent with status failure.
But protStatusCode in assoc confirm is not updated and thus the
pRoamInfo->reasonCode may have garbage value.
In case of Wep connection failure reason code,
pRoamInfo->reasonCode, is sent to the supplicant in connect
result. Now if pRoamInfo->reasonCode is 0 supplicant receives
connection success though connection have actually failed.
To avoid this update protStatusCode, before sending Re/assoc
failure.
Also properly derive if connection is WEP from roamProfile before
clearing it.
CRs-Fixed: 926572
Change-Id: I5ae0832d37746be16696f521bddd5b67307b1ee4
wdi20 enable implementation for hsoffload. Large physical address
support and wdi20 interface propagate to IPA.
part of HDD and CDS
Change-Id: Iaccab3ae233e0b9a8e4942bee0ebaa40ce94fc16
CRs-fixed: 941041
wdi20 enable implementation for hsoffload. Large physical address
support and wdi20 interface propagate to IPA.
This is part of HIF and DP.
Change-Id: If898f03a8a75689c98c70d1e55910f476d8fe329
CRs-fixed: 941041
qcacld-2.0 to qcacld-3.0 propagation
IPA pending_event list keeps IPA events arrived while IPA resource
loading/unloading.
This list is freed only when TX/Rx resume/suspend OP code from FW.
This change is to limit the pending event list size and free up the
pending event list when WLAN driver is unloaded.
Change-Id: Id0489a59bd3c2b04d2faba1069df7b2244a2a730
CRs-Fixed: 937765
qcacld-2.0 to qcacld-3.0 propagation
In the case of SAP + STA mode we fail to enable PNO on the STA interface,
and as a result the PNO feature will fail to find a network and wake the
host. Fix this by making sure PNO is configured in all appropriate
concurrency cases.
Change-Id: I97084cfde73025f0d09b60616959c9530ba82c80
CRs-fixed: 921150
qcacld-2.0 to qcacld-3.0 propagation
While processing GET STATES IOCTL, in a while loop, HOST prints PE, LIM
and MLM states of each session. Normally while loading, HOST allocates
memory for five sessions, but while processing this IOCTL, it iterating
in a loop assuming there are 255 sessions allocated, leading to crash
because of invalid memory access.
Hence while printing PE, LIM and MLM states iterate only for allocated
number of sessions.
Change-Id: I29c9a627615a1983d23831578f45aefe116dac25
CRs-Fixed: 879950
qcacld-2.0 to qcacld-3.0 propagation
Add support in driver for a new vendor command to get
the link properties nss, rate flags and operating
frequency.
Change-Id: Ie3b8d5b2c3886055d303441c5d8b2f2a0a2719bd
CRs-Fixed: 834199
qcacld-2.0 to qcacld-3.0 propagation
PE generated disassoc request is not serialized in SME queue. This
results in corrupting 'lim.limDisassocDeauthCnfReq.pMlmDisassocReq'
which is a global context to save disassoc request.
Address the above by indicating all the PE generated disassoc requests
to SME and process disconnection request only after receiving
eWNI_SME_DISASSOC_CNF from SME(similar to that of processing disassoc
request from peer).
Change-Id: I2b93925ba64c4d9ff22b071dd2e5c7681be59e15
CRs-Fixed: 934183
qcacld-2.0 to qcacld-3.0 propagation
Honor NL80211_SCAN_FLAG_FLUSH scan flag by flushing
sme and lim scan cache entries.
Change-Id: I1ff59e583f815bfec2df458c58a40b30b7bffa00
CRs-Fixed: 934979
Currently as part of application triggered channel switch both the
channel bandwith and bonding mode are limited to 20MHz.
Change made to properly update the channel width and bonding
parameters.
Change-Id: I48297eed74c9e3bfed6fefa67f664f3503fac1f6
CRs-Fixed: 944647
qcacld-2.0 to qcacld-3.0 propagation.
Too many log prints are seen if mtrace are dumped and this cause
WD bark.
To avoid this lower the log level of mtrace to Info.
Change-Id: I05d3fa8b3494785a1933f159280b6c9ba6923c0d
CRs-Fixed: 926416
Propagation from qcacld-2.0 to qcacld-3.0
Added sanity checks for below variable before accessing in the
driver exit path.
nl_srv_sock
pdev_txrx_ctx
Change-Id: I793db21e1a6d1eded027ecbd2805494ea7610852
CRs-Fixed: 846457
qcacld-2.0 to qcacld-3.0 propagation
Create a configuration item to program the first bucket
threshold of the scan results to have the flexibility to
adjust the first bucket threshold.
CRs-Fixed: 922979
Change-Id: I6fad27a2990f7555173e4735131e8392d0277009
1) Check for bssid if it is NULL, before dereferencing it.
2) Check for hal_ctx if it is NULL, before dereferencing it.
CRs-Fixed: 940721
Change-Id: I836416a4717b15902e8b8f27fa2e5e5e7935c12f
Target_lock was a global lock for all target and copy engine data
structure access. Replacing target_lock with a per copy engine
lock permits paralel completion handling for different copy engines.
Change-Id: I9c09d557c85f9e48beafe5e3f936e105183ddd3f
CRs-Fixed: 941355
This is called by the platform driver in case of kernel panic.
Replacement syncronization might be needed here if the kernel
panic doesn't stop the other host cpus before the platform driver
calls this.
Change-Id: Ic6d4eb1cb08f6363029463994ec7e3837212e271
CRs-Fixed: 941355
If watermarks are going to be used, the should be set as part of a
single threaded initialization sequence.
Change-Id: I3e1e9cd0f55f46d9f46718c139963931311fe8ae
CRs-Fixed: 941355
No other thread should modify the copy engine indexes while we
are cleaning up the data structures.
Change-Id: I324286c3a8eed24ddd94aa868dbaac425cc30dbf
CRs-Fixed: 941355
Remove ce_disable_any_copy_compl_intr and
ce_enable_any_copy_compl_intr since they aren't
used and give a false sense of thread safety.
Modifying copy complete interrupt currently needs
to be synchronized with completion handling.
Change-Id: Ieb27a8c71363ebd56f16eda9e1037a161a5eeb62
CRs-Fixed: 941355
Send and recv callback registration currently occurs durring init
and after bmi download is complete. In either case no transactions
are in progress and no race condition can exist.
Similarly watermark callback registration would happen at the same time
if it were used.
Change-Id: Ia77bf30fb3bcefa500465cea9ad9927990bb7ced
CRs-Fixed: 941355
Download length should be set before messages are recieved, so
no race condition should exist.
Change-Id: I92de4b3c4077f23032df45ceca6e169616351b8b
CRs-Fixed: 941355
FW is asserted, dont service the messages. The hif completion
thread used to prevent processing of messages when firmware crashed.
Change-Id: I42a5a285056e989d302e766f2922bb7c114634dc
CRs-Fixed: 941358
ce_enable_msi should happen before interupts are enabled. Therefore
we should be single threaded here and don't need to protect access
with a spin lock.
Change-Id: I24feec02003bdb402201d71d1cd5254dacae0b72
CRs-Fixed: 941355
ce_init should happen before interupts are enabled. Therefore
we should be single threaded here and don't need to protect access
with a spin lock.
Change-Id: I5e1cfd32860eeda8a403744cf1589e35c57ee6df
CRs-Fixed: 941355
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: I7953545b55dae093931741359bbf985e2fb9faca
CRs-Fixed: 941358
This patch enables gEnableTxSUBeamformer by default in config ini
which will help to uncover some of the bugs in default DEV testing.
Change-Id: Ib64d53d307aced8f5384d691a3d7f4b383d52a0f
CRs-Fixed: 930322
This is qcacld-2.0 to qcacld-3.0 propagation
Currently in SAP mode, if max STA connected a operation to turn off
SAP will result in more than SME queue length cmds being enqueued.
To fix, this patch:
1) Makes the SME cmd queue length, 3 times the max STA.
2) Because of increased SME cmds, the allocation for all cmds
together will fail, hence allocate each SME cmd individually
and free them accordingly.
Change-Id: Ia1dfc5b00eacd9bdb503ce18927c62f1edd15320
CRs-Fixed: 928840
This is qcacld-2.0 to qcacld-3.0 propagation
Currently driver drops the action frame category 18 - FST action frames.
This patch adds support for these frames in wlan host code.
Change-Id: I7021e328b7ebe9a1e46f526e3928c7d1279e1ad7
CRs-Fixed: 921117
This is qcacld-2.0 to qcacld-3.0 propagation
When STA is connected to 160MHz AP, channel width is updated to
20MHz since the 160MHz channel width is not handled.
Add support to handle the 160MHz BW in beacon IEs.
Change-Id: Id13164762d6da142093f049121440ce976cecfc1
CRs-Fixed: 924219
qcacld-2.0 to qcacld-3.0 propagation
As part of cleaning up pending action frame, if timeout happens
for tx cnf event then indicate tx failure status as FAIL and free
cfgState->buf to avoid memory leak.
Change-Id: I6caaa8efeab769cce8c4cdfcc868101e63fd8e76
CRs-Fixed: 880779
qcacld-2.0 to qcacld-3.0 propagation
Channel bonding mode in not valid for channel 14. So don't
consider it while deriving the channel bonding mode.
Change-Id: I7ceae149cdd9e2f3c75f937c56cc5e93455fa8ee
CRs-Fixed: 908439
qcacld-2.0 to qcacld-3.0 propagation
On receiving channel switch announcement from AP delete all TDLS
peers before leaving BSS and proceed for channel switch.
Change-Id: I898f501d9d0afbbfef3a553ed63b52da5cd8f978
CRs-Fixed: 914129
qcacld-2.0 to qcacld-3.0 propagation
Few STA/P2P-client's are sending assoc req frame and waiting for
300-500ms. If they don't receive the assoc resp frame within
this time then they resending the assoc req frame. These frames
are not going to have retry bit set.
In the current design host driver is not handling these duplicate
assoc req frames without retry bit set.
To mitigate this issue, while processing assoc request frame,
if pStaDs entry already exists then send assoc response with
same tid and stop processing the assoc req further.
Change-Id: I6d67f4cd352bbee422301b832742e7386666037f
CRs-Fixed: 868736
qcacld-2.0 to qcacld-3.0 propagation
TX flow control timer initialized when STATION interface is created.
During IBSS startup, STATION interface is changed to ADHOC type.
TX flow control timer is not required, so close tx flow control
and destroy timer.
Change-Id: Id9c440638964fb3ab0e95d8a7c747708886a94ff
CRs-Fixed: 882821
qcacld-2.0 to qcacld-3.0 propagation
1.Provide off channel and operating class info to user space
in HAL API wifi_get_tdls_status. If off channel is not enabled
then provide base channel info and in that case pass opclass as 0.
2.Provide correct tdls state based on tdls off channel
configuration.
Change-Id: Ic60500b95ebddcb88b4e03f29178068c5322b2b9
CRs-Fixed: 838167
qcacld-2.0 to qcacld-3.0 propagation
When disassoc request is received from peer and at the same time
if deauth request is received from supplicant, LIM cleanup
may not happen properly as there is a chance of session deletion
in limSendSmeDeauthNtf while cleanup in progress from
limProcessSmeDisassocCnf. This can result in not sending delbss to FW.
Hence, FW can crash when config bss is sent for new connection.
Following changes are added to handle this.
1. Add state eLIM_SME_WT_DISASSOC_STATE in __limProcessSmeDeauthReq
and allow host to post LIM_MLM_DEAUTH_REQ instead of invoking
limSendSmeDeauthNtf, where session is deleted.
2. Send eWNI_SME_DEAUTH_RSP if cleanup is already in progress to avoid
cleanup again. If mlm state is not eLIM_MLM_LINK_ESTABLISHED_STATE,
then it means cleanup is already in progress.
3. Return from __limProcessSmeDisassocCnf if cleanup is already in
progress.
4. Add check in limProcessMlmDeauthCnf to send deauth confirmation even
if state is eLIM_SME_WT_DISASSOC_STATE.
5. Add similar checks in limProcessMlmDisassocReqNtf to handle disassoc
from peer and supplicant simultaneously.
Change-Id: Ie19a7b79d835a5e5a77ef48f9379c1cf90dc38d7
CRs-Fixed: 878334
This is a qcacld-2.0 to qcacld-3.0 propagation.
The problem with the current code is we are finding whether connected or
pno_in_progress or extscan_in_progress in the same for loop and whenever
one of them matches, we break out of loop. It makes sense to keep
connected flag and pno_in_progress inside the for loop because both are
mutually exclusive. But same is not the case with extscan_in_progress,
this flag can be set to true or false irrespective of connected or
pno_in_progress.
Hence the fix is to move finding extscan_in_progress to a separate for loop.
Change-Id: Ie72ff7f7382adaea5626c0808a206d18c2916e0d
CRs-Fixed: 899322
This is a qcacld-2.0 to qcacld-3.0 propagation.
Currently WOW_NLO_SCAN_COMPLETE_EVENT is enabled on receiving
PNO match found event, but it is never cleared.
This is causing regular host wake ups with the reason
WOW_REASON_NLO_SCAN_COMPLETE even if pno match is not found in the
next successive iterations.
Fix this by enabling/disabling WOW_NLO_SCAN_COMPLETE_EVENT before suspend
based on the flag pno match is found.
Change-Id: I21d73de0c03e0c09b5a91a521d848e71eaf359e0
CRs-Fixed: 888964
This is a qcacld-2.0 to qcacld-3.0 propagation.
With RunTime PM feature enabled, after receiving the PNO matched event
RunTime PM puts the host back in WoW suspend after 500ms (default).
Since WMI_NLO_SCAN_COMPLETE_EVENTID is not a wakeable event, this event
does not wakeup the host hence PNO scan not completed and PNO is broken.
Fix this by making NLO_SCAN_COMPLETE_EVENT a wakeable event.
Host driver configures this WoW event only after PNO match is received.
Change-Id: I81cccc86942fc75bc63235038c50ba6edb0fee8b
CRs-Fixed: 884211
This is a qcacld-2.0 to qcacld-3.0 propagation.
1. Add log to print ssid, bssid, rssi, channel and country code
while connecting to an AP.
2. Add log to print disconnect reason when disconnect request is
received from user space.
3. Cleanup some of the logs moving it to appropriate log level
which are showing up as ERROR level in bug report.
Change-Id: Id8ea69a14a18565c226f89a8a5e10be46741d76d
CRs-Fixed: 914336
This is a qcacld-2.0 to qcacld-3.0 propagation.
Increase the maximum config ini items from 512 to 1024.
Change-Id: I5c4958d5c743f1e0b03a4f7b41e21ff9787ccd07
CRs-Fixed: 914336
Propagation from qcacld-2.0 to qcacld-3.0
- Current AGC registers dump logic is not correct and its not
reading correct target registers
- Add correct AGC register read recipe to read correct AGC data
- Wake up SoC before reading any target register
Change-Id: I38016f91bf3d124e93e304522058e97daa711f4a
CRs-Fixed: 911554
Propagation from qcacld-2.0 to qcacld-3.0
- FW asserts after receiving P2P NOA parameter in non P2P GO mode
- Add P2P GO mode check in set NOA IOCTL and do not allow this command
in non P2P GO modes
Change-Id: Ie786dcf33fc50eacadb407d74ae5638da68cf0d2
CRs-Fixed: 919889
Restore the support for service ready extended
event since the required FW support is in place.
Without the service ready extended event, the
FW mode configuration and scan mode
configuration in the driver would be initialized
to zero i.e., all the dual mac features would
be disabled. Otherwise, the default values of
these two params would be set based on the
default values present in this extended event,
which is set by the FW.
CRs-Fixed: 923182
Change-Id: I31aa6420f3076f61008a809fe134b99f9b0dbc08
Sme is stuck due to scan active list mutex lock.
Release the sme scan active list lock if the
active list is empty.
Change-Id: Id05c642fe6fad30e40efa18a213158c331b5a502
CRs-Fixed: 943583
qcacld-2.0 to qcacld-3.0 propagation
Add supported class IE in beacon and probe response frames.
Change-Id: Ife4cb1b3db0119a9472cad0f861887c487b147d3
CRs-Fixed: 941466
qcacld-2.0 to qcacld-3.0 propagation
dfs_radar_found variable will be accessed in different context
so protect the same with mutex lock and synchronize the channel
switch triggered by application and dfs module.
Change-Id: I724d22cde9a77c187a17dffef13a9b4c9b2c27da
CRs-Fixed: 809527
qcacld-2.0 to qcacld-3.0 propagation.
1)Validate channel switch w.r.t concurrency rules set and switch
channel only if there is no channel interference.
2)Disable channel bonding in 2.4Ghz on switching channel to 2.4Ghz band
to avoid violating OBSS feature.
Change-Id: I81992b2c2876a32eba52010e72c4300608067e58
CRs-Fixed: 809527
qcacld-2.0 to qcacld-3.0 propagation
Add extra check for tqe->next!= NULL, to assert in only error scenario
Change-Id: I12e8ca5d5133ee0480d9c7c7c208854630272c89
CRs-Fixed: 839312
When allocate HTT descriptor, instead of allocating
large single chunk of memory, allocate small sized multiple
chunk of memory. Then not need to allocate order 5 memory.
Will have less chance to have memory alloc fail problem.
HTT descriptor. Frag descriptor. OL descriptor. TSO descriptor
Change-Id: Ib9d4a3f10adbc0656e1418cf3a67429322bb7164
CRs-fixed: 845666
qcacld-2.0 to qcacld-3.0 propagation
HTC RX event wait semaphore waiting event infinte.
Infinte waiting will hang device and cannot getting out from
system hang. To collect FW RAM dump and make correct panic,
semaphore should be replaced with time limitted compeletion
Change-Id: Idabfc7916676c9e986e953b50108653a5b394278
CRs-fixed: 924387
qcacld-2.0 to qcacld-3.0 propagation
Currently while populating ext rate set, local rate array
has size as 8.But max 12 ext rates can be copied in this
local rate array.If it is greater than 8, then it leads
to crash.
To resolve this issue, increase the local rate array from
8 to 12.
Change-Id: I2097cc4feb7fa669a970de5463130bb4bbf6401c
CRs-Fixed: 903816
qcacld-2.0 to qcacld-3.0 propagation
Currently if STA is very near to connected AP, it sends the
positive value of RSSI to framework. Framework checks this RSSI
and if positive(greater than 0) then it consider RSSI as -127dbm
which may lead to disconnection.
So changes are done to avoid sending the positive RSSI value
greater than 0.
Change-Id: Ib417f48345e3f78dba54d68969fa15d294f313b9
CRs-Fixed: 842243
qcacld-2.0 to qcacld-3.0 propagation
Currently if sta is connected to an AP
which only supports 11b, lim doesn't send
addTspec request to that AP. Specs doesn't
restrict Tspec in 11b. As a part of fix,
allow addTspec in 11b.
CRs-Fixed: 847755
Change-Id: I57c2d5139f9861140ab3bbe8314a1a3fe3e80e19
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
qcacld-2.0 to qcacld-3.0 propagation
Misleading error logs are removed
as part of this fix
CRs-Fixed: 929840
Change-Id: Ifdc10b79359863a4f3c2009403ee5f6c7ab18110
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Enable classification of IPv6 frames based on the
traffic class field in the IPv6 header.
Change-Id: I4114cb972f61b75da35a225c07f7628d748a744c
CRs-Fixed: 921955
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
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
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
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
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
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
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
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
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
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
In case of LFR3.0, report the critical roaming events
such as receiving the roam synch indication from firmware,
sending the roam synch complete to the firmware, sending
Hand Over failure event to the firmware to the DIAG modules
for better debug capabilities.
CRs-Fixed: 938002
Change-Id: Icfb4972d59dc3b734ed5af37d70834fea470d741
The SRRI/DRRI can be read from DDR instead of doing an
actual hardware read. This mechanism is compiled out by
default.
Change-Id: I8fc6c8817b5958f3d00b47ccd3dba36b354097e8
CRs-Fixed: 932344
Facilitates faster data transfers. This provides a basis
to start using the other 4 CEs for additional services.
Only adding structure elements to enable these CEs not
really using them yet.
Change-Id: I4be07413de409195ccc717765c75806a1470941e
CRs-Fixed: 938752
qcacld-2.0 to qcacld-3.0 propagation
When INTRA_BSS_FWD_OFFLOAD is enabled, FW will send all Rx packets to
IPA uC, which needs to be forwarded to other interfaces. IPA driver will
send back non-IP, broadcast and multicast packets to WLAN host driver
in exception pipe with fw_desc field set by FW as:
- FW_RX_DESC_FORWARD_M bit: Forward the packet to TX
- FW_RX_DESC_DISCARD_M bit: Do not send the packet to network stack,
which will be set of for intrabss unicast.
Change-Id: Ie2826c8c7b578e3684133a2554ed086e721f67ae
CRs-Fixed: 895662
Change the range of values for early stop scan feature
configuration items as per firmware expectations.
CRs-Fixed: 939185
Change-Id: I7d893cd1ed44a71bffaab22121f052288b14b640
qcacld-2.0 to qcacld-3.0 propagation
HDD IPA event_lock was originally introduced to protect IPA resources
between HDD_IPA events, but this also used to protect HDD IPA internal
struct now. So, this could cause an unexpected deadlock by guarding
too wide resources.
This change is to separate a lock for IPA resources.
Change-Id: Ie9b676e5d4775e54bddf141b841e0f0daeb22731
CRs-fixed: 934723
qcacld-2.0 to qcacld-3.0 propagation
Change cdf_trace_hex_dump to use hex_dump_to_buffer.
This will print one line even if buffer size is less than 16 bytes.
Change-Id: I2dec78048d52f96d494c9e0ce133c4c18f48e954
CRs-fixed: 933157
The Tx & Rx SS macros aren't called with correct parameter in
wma_update_intf_hw_mode_params. Fix the calls to get the Tx & Rx SS values
correctly.
Change-Id: I4df4db549d4bb0c7d00a521de55165bfccf16a65
CRs-fixed: 935341
This is qcacld-2.0 to qcacld-3.0 propagation
Due to cleanup in function limSendReassocReqWithFTIEsMgmtFrame()
assocReqLen was not being set to zero when the corresponding buffer
was NULL. This caused memory copy in buffers being passed between
PE and SME and HDD to be improper. HDD when reading the buffer
wrongly read it from wrong offset and hence RSN IEs being passed to
supplicant are all zeros. This patch fixes this by setting
assocReqLen = 0 when AssocReq buff is NULL
Change-Id: I0edaff93fcdbb2d5ae80478a76f07cb4dee8aceb
CRs-Fixed: 929797
HTC control messages ready and connect service indications use
CtrlResponseBuffer for processing the HTC messages. Flag
CtrlResponseProcessing is used to protect this buffer from
overwriting before processing. Current implementation has race
condition as setting the flag happens on waiting thread context
instead of receive thread context so this could lead to
overwriting the CtrlResponseBuffer if waiting thread doesn't get
chance to run because of may be another RX interrupt.
Also to catch this kind of issues, add CDF_BUG so that it is
easier to triage the cause for the malformed packet which is not
expected.
CRs-fixed: 881504
Change-Id: Ia279e08c761a3432cf01d4dc129f7b5439d04680
Fix compilation issue when ROAM_OFFLOAD is not enabled. There are
issues with ROAM_OFFLOAD feature conditional compilation.
Change-Id: I068245885ab9f054b4c03307a9ecc0066bc88ebe
CRs-fixed: 784982
- Fix a crash seen due to memory being freed twice
- Deregister the LRO flush callback during LRO disable
CRs-Fixed: 933123
Change-Id: I18edadc620da04b9a571da6e1b143c099c308d90
This change is to address a watchdog bite that is seen when
a peer corresponding to the transmit frame is not found in
the OL TXRX transmit path. The change is to log the error
using a CDF trace warning message.
Change-Id: I8792da5539c75a3041c3c85f5a7e29714b721502
CRs-Fixed: 936374
This commit will fix the incorrect pmf config param for STA DUT
in-case of LFR2/3 roaming scenario.
Change-Id: Ic0d6d4632cfeaa0589b435a6710f3c2380cf5883
CRs-Fixed: 935947
qcacld-2.0 to qcacld-3.0 propagation
Current driver is honoring association response with try again later
as reason code without connection being PMF. Driver has been designed
to handle try again later reason only for PMF connection. For non-pmf
case it should report as failure to upper layer just like any other
failures.
To fix this situation, honor try again later reason code only if the
connection is PMF.
Change-Id: I4b37d072bc92e003fcfe62ffe8f93f7c185eb6c7
CRs-Fixed: 919203
Change "qcacld-3.0: Record data in DP Trace" introduced skb tracing
functionity to the driver. In hdd_softap_hard_start_xmit() logic was
added to trace the skb contents, including logic to trace the skb
contents when an skb was dropped. However some of the code paths to
this "drop_pkt" tracing have a NULL skb. Therefore we must bypass the
dropped skb content tracing when the skb is NULL.
Change-Id: I485c92647355a0f7f420f40640b697a1d3eb5fb0
CRs-Fixed: 938254
Fix layering violation in hdd_update_tgt_services by not accessing
pMac structure directly from HDD.
New SME API - sme_update_tgt_services() introducted to configure the
parameters in pMAC structure.
Change-Id: I7310e51001c5e17ed63730d7a86445548aa3d246
CRs-Fixed: 915267
Fix inappropriate use of Linux-specific workqueue code and
data structures in WMA.
WMA is supposed to be os-agnostic code but it currently has
Linux-specific data declarations and code for ack_cmp_work.
This change set will convert the existing code to os-agnostic
representation.
Change-Id: I3260fa3b4b482c10272ac94ab10e14e40b8950f9
CRs-Fixed: 924421
Fix the usage of list node which was deleted before the usage in
wma_cleanup_hold_req function.
Change-Id: I8ee243fda511de71083ce7e631a21497f4f153c1
CRs-Fixed: 937267
Fix the usage of linux-specific structures and functions by
replacing them with OS-abstracted types for vdev_resp_queue.
Change-Id: If2d4a9a1dffd59ec1db4b4aa572dfa453bfd0167
CRs-Fixed: 931094
qcacld-2.0 to qcacld-3.0 propagation
In order to improve driver load time, reduce PM QOS latency tolerance
time to minimum to avoid CPU enters aggressive PS during loading driver.
Change-Id: Ibacf933d379f37063d900d444de20493b94ebd90
CRs-fixed: 935267
This is qcacld-2.0 to qcacld-3.0 propagation
Fix the misspelled entry RIND_ID_DRIVER_DEBUG to
RING_ID_DRIVER_DEBUG in the enum wifi_logging_ring_id
CRs-Fixed: 938286
Change-Id: I0d33128c6d11ecc9ff3d403931bfd6bfdbbb2b4a
Avoid waiting for SME response messages while holding the SME global
lock. Currently a wait for 500ms happens in cds_handle_conc_multiport
after the holding the SME global lock. Because of this, the set hw mode
response posted by LIM is not processed by SME as SME would be waiting
for the lock.
Change-Id: Ib7890cb7124f5879316f46b1bf9f0ad3fb225665
CRs-Fixed: 939026
Add CDS connection manager APIs to manipulate the connection
update event. These APIs can be used to initialize, reset,
set and wait for connection update event.
Change-Id: I5689711d4bdc0e39b2456573158943ebda9cbc2a
CRs-Fixed: 939026
cds_get_bin.h and cds_get_bin.c were derived from qcacld-2.0
vos_get_bin.h and vos_get_bin.c. These files got their names
since at one time they housed the wrappers used to retrieve
binary files nv.bin, cfg.dat, and firmware. But over time the
functionality to actually retrieve binary files (get_bin) has
been removed, and almost all that is left is concurrency
management functions. So, moving the .[ch] functionality to
the right files.
CRs-Fixed: 932777
Change-Id: I4a26c304cc6b6224d0839c365e4006fd32270961
qcacld-2.0 to qcacld-3.0 propagation
An increase in tx_queue_len of netdev to 3000 is giving us better TCP
TX performance. Hence, increasing its value from its default (1000).
This gives us about 30 - 40 Mbps of boost.
Change-Id: I68f26ac0f4a040b0bbf10dd571dae8e5316f16b3
CRs-Fixed: 927673
qcacld-2.0 to qcacld-3.0 propagation
In hdd_cnss_request_bus_bandwidth function, the overall bus bandwidth
and rx bandwidth requirements are being determined based on tx and
rx packets. This change detects tx bandwidth required (high or low)
and sends WLAN_SVC_WLAN_TP_TX_IND indication to cnss-daemon which can
tweak system parameters depending upon TX bandwidth needed.
Change-Id: I3eec2e3f95fa32b191d905209a38cb6d48837c33
CRs-Fixed: 918529
qcacld-2.0 to qcacld-3.0 propagation
Firmware indicates the number of peers connected as part of iface
stats. If there are no peers connected, don't wait for the
peerstats and indicate the stats to host.
Change-Id: I32d04a5711adb5f924d120ee61064a178e753549
CRs-Fixed: 847743
qcacld-2.0 to qcacld-3.0 propagation
Register values are captured in the crash dump with BUG_ON.
Change-Id: I33500aea0769879d63b2e684dc898ba0e3b0b5a2
CRs-Fixed: 813402
qcacld-2.0 to qcacld-3.0 propagation
In the HTT hash de-init function, the network buffers (skb) need to
be unmapped before they are freed.
Change-Id: I879de6671d788f1ab99f7645ab424d56eafdbfd1
CRs-Fixed: 815265
The existing log for dumping concurrency information doesn't consider
DBS & also doesn't cover for various new combinations added newly.
Update logic for dumping DBS info & cover the new concurrency cases.
Change-Id: Id898bdc2c8aabfa70c99e6193c52f2723ded5c65
CRs-fixed: 935453
The Tx & Rx SS & mac id update already been done by
wma_vdev_start_resp_handler. So, no need to update again by calling
wma_update_intf_hw_mode_params.
Change-Id: Ib9804bf0d30c75d95b14925a902fe167fa681be0
CRs-fixed: 935341
qcacld-2.0 to qcacld-3.0 propagation
Currently in hdd_set_app_type2_parser, sscanf writes 4 bytes of data in
tcp_src_port and tcp_dst_port variable. The original size of variable
is 2 byte.
Update code to write appropriate size of data in variable.
Change-Id: Ifdbfa06da6cb7d0bfef4f4e105a6911950f1d6ad
CRs-Fixed: 859493
Issue the connect command immediately when the system is already
in the required hw mode. Currently the connect command is issued
immediately only when the concurrent connection update succeeds,
i.e., only when a set hw mode succeeds. But, when the driver is
already in the required hw mode, the return value would not be
success and the connect command is not getting issued immediately.
Fixed this by checking the return value which indicates that the
driver is already in the required hw mode, and issuing the
connect command immediately.
Change-Id: I1ef2adf4d92953f47d36bdae41a9d7d8d559a203
CRs-Fixed: 936268
qcacld-2.0 to qcacld-3.0 propagation
When the driver is in SoftAP mode when it is unloaded,
and if many clients are connected,
sometimes not all clients can gracefully disconnect.
In this case the IPA HW pipes are not cleaned up properly,
and subsequent pipe setup will usually fail.
To avoid a bad pipe configuration, before unloading driver,
check the pipe status and if the pipes are not closed properly,
shutdown the pipes forcefully.
Change-Id: Icc0543567423cc4b625140280be13ef733d7d67d
CRs-fixed: 886229
Propagation from qcacld-2.0 to qcacld-3.0
Add length sanity check in iw_set_keepalive_params to avoid
stack over flow.
Change-Id: If59794d1b5f8efad2fe54844fab0e7cea9b1b983
CRs-Fixed: 932466
This is a qcacld-2.0 to qcacld-3.0 propagation.
Function hdd_extscan_start_fill_bucket_channel_spec() is used to
transfer EXTSCAN bucket parameters from a netlink message to an
internal representation. A code analysis tool identified a potential
buffer overflow of the per-bucket channel list in this function. In
reality this is a false positive since there is other logic which
limits the total number of channels across all buckets, and this logic
will prevent overflow of the channel list for a single bucket since
they use the same limit.
However this presents a code maintenance issue since a potential
overflow could be introduced in the future if a change is made to
allow the total number of channels across all buckets to exceed the
number of channels allowed in a single bucket.
To protect against this possibility, as well as make the code analysis
tool happy, add an additional check to make sure the per-bucket
channel list does not overflow.
Change-Id: Ifdf2de918d8b2c5a907e833e7bc42315b607e5a5
CRs-Fixed: 922047
This is qcacld-2.0 to qcacld-3.0 propagation
When SETDFSSCANMODE is set to 0, it should now avoid DFS channels
altogether. Original implementation avoided DFS channel in roaming.
Now host code will first disable DFS channels and then follow
the original path.
Modifications to wlan_hdd_cfg80211_disable_dfs_chan_scan()
- Keep validation of vendor command from NL.
- Moved the DFS channel manipulation code to
wlan_hdd_disable_dfs_chan_scan()
Call wlan_hdd_disable_dfs_chan_scan() in SETDFSSCANMODE processing.
CRs-Fixed: 778613
Change-Id: Ia2c00a6eb8d50e7962224375562a5b6417ba8bb2
qcacld-2.0 to qcacld-3.0 propagation
The wait for key timer value in the driver should
be greater than that of supplicant.
Hence increasing it to 15 seconds.
CRs-Fixed: 919403
Change-Id: I5d6e8d445ab9dcef73b923595f41564e0a6e3c6e
qcacld-2.0 to qcacld-3.0 propagation
1) Enable the feature only when connected to 2.4 GHz AP.
2) Modify the default values to reduce the scans and not impact power
CRs-Fixed: 817919
Change-Id: Idaff886cec558a06cf9341e47a8ce17b348ad72b
qcacld-2.0 to qcacld-3.0 propagation
Enable the HI_RSSI feature from the code
instead of WCNSS_qcom_cfg.ini.
CRs-Fixed: 822475
Change-Id: Ic48e49e7042c06b1f0b2bf09d2d7ccae2d7cd9ad
qcacld-2.0 to qcacld-3.0 propagation
The MAC is not started upon FTM start.
Similarly stopping is not needed during FTM stop.
CRs-Fixed: 917306
Change-Id: I72ee4a58c88b54c1dad1b82f749274e0c2e8a9ce
qcacld-2.0 to qcacld-3.0 propagation
In the current design, PMKID is sent in RSN IE in reassoc req for
CCKM roaming.When AP receives CCKM IE and PMKID, it gets confused
and rejects the reassociation.So in case of CCKM+RSN, don't send
PMKID.
Also, in reassoc request, MIC was going 0 in CCKMIE.This MIC is
calculated by calling platform driver API.When this API returns
SUCCESS then result is copied in MIC buffer but if this API
returns EINPROGRESS/EBUSY, then driver wait for the event and once
the event is completed it does not copy the result in MIC buffer.
So changes are done to copy this result in MIC buffer in case of
BUSY/INPROGRESS status.
Change-Id: Ide74db250aa5c129fa223582be830c15f34cfb16
CRs-Fixed: 763969
qcacld-2.0 to qcacld-3.0 propagation
Some of the logs are misleading to believe that there are
some memory related issue which infact is not. Cleanup the
logs to convey the exact message that has to be conveyed for
those scenarios
CRs-Fixed: 907715
Change-Id: Iaab688eb9b8b19705b3d87c4efe1c7ef29ccf613
qcacld-2.0 to qcacld-3.0 propagation
In DFS mode, scan req completed through work item
which is async method and may lead to null
pointer access during driver unload.
So as part of fix null check are put in place
to avoid null data access.
Change-Id: I1f2255c1ad6e3e881626a32384b9badde1b255fc
CRs-Fixed: 894741
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 appears excessively.
As a part of this fix sta select queue netdev ops need
to validate Hdd context to take care of SSR and load
/ unload cases.
Change-Id: I087f50ac9e59c3e181bde54f2041f9dda3177266
CRs-Fixed: 857429