If modem crashed during wlan driver unloading, icnss driver
will call driver uevent callback to set FW down status in
driver side when it receives BEFORE_SHUTDOWN notification.
If wlan driver is de-initialized just before the callback
is called, kernel will panic as driver's context is freed.
This can be avoid by not setting FW status in host driver.
Instead, icnss driver provides an API to host driver to
check FW status and host driver calls this API before any timeout
assert or accessing HW registers.
CRs-Fixed: 2161431
Change-Id: I8331367dd41dd0cedfa65c63f1bb3ffcb535e1c9
This reverts the change-Id: Iec7423809f5225de9b5c4d08d7806a8a2a9dfe06.
Advertise the min of self TxBF CSN and APs TxBF CSN value to
fix the IOT issue with the AP.
Change-Id: Ifd344bfd3cb6ca5a18d356b888d85bd100d4194d
CRs-Fixed: 2312098
Remove timer debug and memory debug string from hdd_module_init
since g_wlan_driver_version already has timer and memory debug
string levels.
Change-Id: I8ef9f43d971df18b5184d76c5a3f4628feb8d12d
CRs-Fixed: 2316929
Currently CSR session PMK is updated from the set_key command from
supplicant after successful 8 way handshake with the AP. However,
in case of roaming to an AP which already has the PMKID cached, the
Roam Sync happens with Auth Status Authenticated and set_key from the
supplicant does not happen. In this case, the value in the CSR session
PMK is incorrect and is the PMK of the previous AP before roaming.
After this scenario, if any RSO command is sent to the FW, the incorrect
PMK is sent as part of the RSO command updating the FW with incorrect
PMK for the current AP. The next time a roaming happens to the same AP,
then the 4 way handshake fails and fallback to 8 way handshake happens.
Update the PMK in CSR session for the current AP from PMKID cache
during Roam Sync propagation, if the Auth Status is authenticated.
Change-Id: I3ced7d0fd75379ede01cf9f993f5beefbb20cda1
CRs-Fixed: 2313289
The MBO IE sent from the supplicant supports multiple TLVs of the
same attribute type to be present. For example, for MBO case 5.2.8,
the supplicant sends 2 non-Preferred channel TLVs in the MBO IE.
However, when the driver unpacks the MBO IE for the Assoc Request
frame using frame parser, it supports only one unique TLV of each
attribute type in the MBO IE. So the second non-Preferred channel
TLV overwrrites the first TLV and the driver sends out Assoc Request
frame with only one non-Preferred Channel TLV in the MBO IE causing
the test case to fail.
Strip the MBO IE in the Additional IEs from supplicant and append
it to the end of the Assoc request frame without parsing it.
Change-Id: I35ede59983ef63268e4648bb38217ebec2454382
CRs-Fixed: 2310297
PMK caching and OKC is valid only in non CCKM roaming scenarios.
If these parameters passed to FW in CCKM case then device may add the
PMKID in reassoc request frames which is not expected.
So reset 11i parameters in RSO command if the authentication type is
CCKM.
Change-Id: I32bdb288e7fa557f133b7f311f51d85d57ff659b
CRs-Fixed: 2306038
error: '__DP_RX_THREAD__H' is used as a header guard here,
followed by #define of a different macro [-Werror,
-Wheader-guard]
Change-Id: I21beca14c8ea98a9a6c4a4acd5f3c7428fd56e01
CRs-Fixed: 2315965
Currently copy of the last connection info is done
incorrectly inside hdd_save_bss_info api.
To address this issue update the memcopy with the
correct structure.
Change-Id: Ibc604650cd1d39c7b19619057427955ba3e4026f
CRs-Fixed: 2307526
Define mlme lfr configures based on converged cfg component, add
APIs to get and set mlme lfr configurations.
Change-Id: I8aa9b37d1b943fcdc6a84704ede37b19cd7cffb8
CRs-Fixed: 2316490
In the scheduler_post_message, src_id is now added to
know the source module of the msg. the present scheduler
doesn't know about the same which is scheduler_post_msg
Replace the scheduler_post_msg with scheduler_post_message
Change-Id: If929a98b8b9d5b1b9c8f0291876e410a3dfbdf49
CRs-Fixed: 2305983
The name 'hdd_psoc' is misleading, since it is not actually an HDD psoc
context. Rather, it is the Object Manager psoc context. Rename hdd_psoc
to psoc for consistency, and to make room for HDD to have its own psoc
context.
As a first step towards this large renaming, introduce a union in
hdd_context such that such both names can exist during the transition
period.
Change-Id: I9971c478c0d1dc111bb20a7cd6614f73ffb0b15d
CRs-Fixed: 2315990
As a part of the cfg80211_get_station command, the driver sends TX stats
(tx rate, MCS index, NSS and flags). Currently there is no support to
send the similar RX stats.
Add support to send RX stats to the framework.
Change-Id: Ic66596d118ad1395706db7638da1b4fdef7dc2d5
CRs-Fixed: 2303306
Add the MBO ini configs to mlme for the following:
1. CFG_MBO_CANDIDATE_RSSI_THRESHOLD
2. CFG_MBO_CURRENT_RSSI_THRESHOLD
3. CFG_MBO_CUR_RSSI_MCC_THRESHOLD
4. CFG_MBO_CAND_RSSI_BTC_THRESHOLD
Change-Id: I9e779c912538973c8281170ec8c212a4f05b7e2e
CRs-Fixed: 2314168
Currently in function dp_rx_thread_process_nbufq inside while
loop with nbuf list as condition if peer or vdev is not found
nbuf list is freed but not assigned to NULL and continue operation
is done. This leads to invalid freed nbuf list access in successive
loop iteration. In this change after nbuf list is freed assign it
to the next nbuf list which is in the rx thread queue.
Change-Id: I4b595a8708f91677645815105ad736926de91758
CRs-Fixed: 2309908
When downloading a corrupted firmware file that has chunk length in
header which doesn't match the contents, buffer over-read may occur.
To fix it, before downloading the data, ensure the length is equal or
smaller than the left size of the firmware file.
Change-Id: I4e0c6c4423f94f26a8c4573b5d234296890f4ecf
CRs-Fixed: 2314182
Fix the locking order of pdev->peer_ref_mutex and pdev->local_peer_ids.lock
spin_locks in ol_txrx_disp_peer_stats(), this was resulting in deadlock
with lock order in ol_txrx_peer_get_ref_by_local_id().
Change-Id: I51d39daed7f8fb04c30fd6a73e2f9ca388543620
CRs-Fixed: 2315808
CE service file includes APIs for both legacy and lithium architecture.
Legacy service APIs compiled for lithium architecture.
Separate the CE services into legacy and srng and selectively compile
required files.
Change-Id: Iad6b6c7cef7520e1e7b74da83805290eddcbabf6
CRs-Fixed: 2304556
In wma_unified_radio_tx_mem_free() function, results buffer array may be
dereferenced with large index value, that may result OOB memory access.
Fix the same by correcting incrementing pointer to results buffer.
Change-Id: I57a26dba9db32758c7d7fd51b99d3364a8020a9d
CRs-Fixed: 2308644
An upcoming change will add synchronization to the driver load
operation. Effectively, driver load and psoc probe will need to be
exclusive operations. Because driver registration can synchronously
invoke psoc probe, move this registration to the end of the driver load
function. This prepares the way for adding synchronization around the
bulk of the load logic, and releasing it just before registration. This
avoids issues where driver load and psoc probe would otherwise execute
at the same time.
Change-Id: I3a617673ea0d4a56e2c08b2ef2f98f8cbdf42205
CRs-Fixed: 2315976
In preparation for additional work in this area, refactor the
__hdd_module_init and __hdd_module_exit areas.
* Rename __hdd_module_init to hdd_driver_load
* Rename __hdd_module_exit to hdd_driver_unload
* Add missing error handing in hdd_driver_load
* Address symmetry issues between hdd_driver_load and hdd_driver_unload
* Remove redundant call to hdd_sysfs_destroy_version_interface
* Update hdd_set_conparam to take a signed integer
* Address various other style issues
Change-Id: I8ea936a493bb262abf7d43a816dbf72530efa424
CRs-Fixed: 2315840
During insmod, the various driver components are initialized. HDD,
however, does not pay attention to any of the return statuses. Add error
handling for component initialization in HDD.
Change-Id: Ia8e3114685086964acacdee481a9fec8b7ef8a00
CRs-Fixed: 2314569
Translate the legacy auth type to crypto auth type.
Set the crypto auth type under vdev object.
Use APIs to translate NL param type to crypto
param type from common.
Change-Id: I7073d35fe1724d37467bf970cf6bac7bc40045d1
CRs-Fixed: 2285045
This change Removes legacy APIs to modify vdev state machine and
add use new API to get vdev state.
Change-Id: I48aa3744dafc6d13a43a14e48de821c7dadf3a37
CRs-Fixed: 2314730
Since refined mlme sta configures based on converged cfg component,
apply mlme sta configurations, remove related legacy codes.
Change-Id: Ia5989a29378bf33e3c9550a0ae26338aeb966592
CRs-Fixed: 2312079
Define mlme sta configures based on converged cfg component, add
APIs to get and set mlme sta configurations.
Change-Id: I1a03037081ebe27760d23405adc3cc9042ba7698
CRs-Fixed: 2312002
In slub debug enabled build processing is slowed down and hence
increase the FW response timeout values by factor of 2 times.
Change-Id: I979269a9b4f6bc03f97452b3d7f7416fd418f336
CRs-Fixed: 2315934
Add timer manager and memory debug string in driver version
global variable such that in offline tool analysis team can
easily find wlan build and version type.
Change-Id: Ie7283d86c0ca38f0b81d407c30da393ff666e51d
CRs-Fixed: 2315915
wbuff is a module which maintains a pre-allocated pool of
skbs for each registered module and allocates skbs when
requested.
Change-Id: Ia4d13479d8a1342227a2ecbaf29cc7a89bc5e30b
CRs-Fixed: 2313446