peer_list is a parameter for tdls_ctx, so every access to
peer_list should be protected with mutex lock.
This change refactors the code for function
wlan_hdd_tdls_disable_offchan_and_teardown_links(),
wlan_hdd_tdls_scan_callback() and wlan_hdd_tdls_teardown
_links() before calling wlan_hdd_tdls_find_all_peer().
Change-Id: I881e12bb0c50bfbeb4fe60cb21cfdf0f7d6c2f56
CRs-Fixed: 1106293
peer_list is a parameter for tdls_ctx, so every access to
peer_list should be protected with mutex lock.
This change refactors the code for function
wlan_hdd_tdls_discovery_timeout_peer_cb() and
wlan_hdd_tdls_scan_callback().
Change-Id: I6927aee62c726edd1944d3b6638ae68d9c91d6ab
CRs-Fixed: 1106235
peer_list is a parameter for tdls_ctx, so every access to
peer_list should be protected with mutex lock.
This change refactors the code for function wlan_hdd_tdls
_idle_handler(), hdd_tdls_connection_tracker_update() and
hdd_roam_tdls_status_update_handler().
Change-Id: I75dc17b581b0c5ef12cbc9203d679a5ea175c752
CRs-Fixed: 1106172
peer_list is a parameter for tdls_ctx, so every access to
peer_list should be protected with mutex lock.
This change refactors the code for hdd_roam_tdls_status
_update_handler(), wlan_hdd_tdls_ct_sampling_tx_rx() and
wlan_hdd_tdls_update_tx_pkt_cnt().
Change-Id: I7e3e74d149b3dfe527aeb01ee5b3d7a51b16fc61
CRs-Fixed: 2009223
peer_list is a parameter for tdls_ctx, so every access to
peer_list should be protected with mutex lock.
This change refactors the code for wlan_hdd_set_callback(),
wlan_hdd_tdls_extctrl_config_peer() and wlan_hdd_tdls_
extctrl_deconfig_peer().
Change-Id: I07d708f5e9475c57ee473f455ee716d2b6ba7139
CRs-Fixed: 1115923
The function wlan_hdd_tdls_indicate_teardown() calls
wlan_hdd_tdls_set_peer_link_status() with need_mutex
agrument as TRUE.
This change passes mutex argument to the function
wlan_hdd_tdls_indicate_teardown() that inturn passes
to wlan_hdd_tdls_set_peer_link_status() for need_mutex
argument.
Change-Id: I96400c00470dba7ae5ba9ad26142c7c5aaf2feb7
CRs-Fixed: 1115911
peer_list is a parameter for tdls_ctx, so every access
to peer_list should be protected with mutex lock.
This change refactors the code for wlan_hdd_tdls_add_station()
and wlan_hdd_tdls_set_link_status().
Change-Id: Ibb323d6dccfb91fddf8bde849054cfc331081ff8
CRs-Fixed: 1115781
qcacld-2.0 to qcacld-3.0 propagation
peer_list is a parameter for tdls_ctx, so every access
to peer_list should be protected with mutex lock.
This change refactors the code for wlan_hdd_tdls_reset
_peer() and wlan_hdd_tdls_set_sta_id().
Change-Id: I5950c411ca48186d6cb7cbd5a4acd688db1a0cba
CRs-Fixed: 1108994
qcacld-2.0 to qcacld-3.0 propagation
peer_list is a parameter for tdls_ctx, so every access to
peer_list should be protected with mutex lock.
This change refactors the code for wlan_hdd_tdls_get_peer(),
wlan_hdd_tdls_set_cap(), wlan_hdd_tdls_recv_discovery_resp(),
wlan_hdd_tdls_set_peer_caps(), wlan_hdd_tdls_get_link_estab
lish_params(), wlan_hdd_tdls_set_responder() and
wlan_hdd_tdls_set_signature.
Change-Id: I4589eea7f5f97d0e9887e008921a89af05bce329
CRs-Fixed: 1108972
qcacld-2.0 to qcacld-3.0 propagation
peer_list is a parameter for tdls_ctx, so every access to
peer_list should be protected with mutex lock.
This change refactors the code for wlan_hdd_
tdls_set_rssi() and __wlan_hdd_cfg80211_tdls_mgmt()
before calling wlan_hdd_tdls_find_peer().
Change-Id: I1cedeff6f42854a66b4c878dd8d4ecf345ae875f
CRs-Fixed: 1108952
When TDLS exists and new virtual interface is added, then
TDLS gets teardown. But TDLS connection tracker is disabled
only when new connection comes up successfully. When STA
interface is present and TDLS is running and SAP is started,
TDLS gets teardown while adding new virtual interface. But
TDLS gets formed again if there is delay in starting BSS.
Thus, TDLS gets formed, but TDLS connection tracker gets
disabled.
The change is to teardown TDLS links if TDLS connection
tracker is disabled in cds_incr_active_session().
Change-Id: I0ae6526ad0aa321b666e62d09c2ca5b1be8f9157
CRs-Fixed: 2010694
TDLS connection tracker gets disabled while decrementing the
session. While incrementing the session, cds_set_tdls_ct_mode()
is called first, which does not enable TDLS connection tracker
as TDLS mode is already disabled. Then, wlan_hdd_update_tdls_
info() is called that enables TDLS mode, but still TDLS
connection tracker is disabled. TDLS connection tracker gets
enabled only in wlan_hdd_tdls_scan_done_callback().
The change is to enable TDLS connection tracker whenever
wlan_hdd_update_tdls_info() enables TDLS mode.
Change-Id: I00acaebdea737c4482b204ddc25df6b15b330254
CRs-Fixed: 2009566
In the case of concurrency, considering STA+P2P-GO, if P2P-GO is
removed, then cds_decr_session_set_pcl() will be called from two
contexts mc_thread and supplicant. Thus, if race occurs, then
cds_store_and_del_conn_info() will remove STA temporarily for one
caller, and it simply returns for second caller. As
cds_conc_connection_info stores garbage values for the second
caller, thus, new interface is created with junk variable.
The change is to avoid the race condition for calling
cds_decr_session_set_pcl() in two contexts. The change is also
to initialize cds_conc_connection_info() with zero before simply
returning because of failure in cds_store_and_del_conn_info() to
avoid creating new interface with junk values.
Change-Id: I7bc4dcea6dfb66954f2cead607eef303df62e6d6
CRs-Fixed: 2009364
Currently driver does not wait for peer del response from firmware,
but posts del sta response indication to SME immediately. This
can cause an assert in firmware if driver receives add sta
immediately before even del sta response from firmware. Add
changes to wait for peer del response from firmware to fix
this.
Change-Id: I16a84256f4a1ed971c17eb3139faac5622eadda4
CRs-Fixed: 2008940
Access to tdls_ctx should be protected with mutex since
it is being accessed and freed in different contexts.
ct_peer_mac_table is a parameter of tdls_ctx and it is
being accessed in tx/rx path which runs in softirq context.
So we cannot hold the mutex while accessing the tdls_ctx
in tx/rx path.
In this change the ct_peer_mac_table is moved to hdd_ctx so
that we no need access the tdls_ctx in tx/rx path.
CRs-Fixed: 1105539
Change-Id: Iafcc450a6e34500929605a11274fb2077b3f81fe
wlan-cld3.driver.lnx.1.1-dev to wlan-cld3.driver.lnx.2.0-dev propagation
As per the 80211 spec, except for setup req and resp frames all
other TDLS management frames shall be transmitted with AC VI. But
this may cause packet check failure for WMM certification-STAUT
-5.2.31 when Admission control is enable for VI.
To overcome this issue discard discovery request and setup cfm
frame when ACM is set for AC VI.
Change-Id: I13da566e9de5e9a366c1efc41c0af67320305570
CRs-Fixed: 1083561
wlan-cld3.driver.lnx.1.1-dev to wlan-cld3.driver.lnx.2.0-dev propagation
As per the current code, upon receiving the disassociation frame
AP, DUT-STA disconnects from the AP link but not tearing down the
TDLS link with peer by sending deauth with reason code 3.So when
AP comes up again TDLS link is not establishing between the
peers.
Fix is to delete all connected TDLS peers upon receiving
disassociation framefrom AP.
Change-Id: I8daa61cb1901441e5fae7d161c9f943d67e13c56
CRs-Fixed: 1081264
Currently, WMA maintains vdev up flag but other component
also need this flag to check vdev up status. Hence as part of
this fix removing this flag instead using Objmgr Vdev mlme state
for same purpose.
Change-Id: If1922791e71c07621708755de67fbcc2f7a469cd
CRs-Fixed: 2014026
Currently WMI_ROAM_EVENTID is handled in work queue context whereas
WMI_ROAM_SYNCH_EVENTID is handled in MC Thread context. This can
cause handling of WMI_ROAM_SYNCH_EVENTID followed by WMI_ROAM_EVENTID
if both events are received from firmware almost at the same time
which can result in setting roaming_in_progress to true even after
roam synch event handling and can block further scan requests.
Fix this by handling both WMI_ROAM_EVENTID and WMI_ROAM_SYNCH_EVENTID
in same MC Thread context.
Change-Id: I722cea54fa2126cb5d647f3a26371ca1c9a0f5a2
CRs-Fixed: 2014404
qcacld-2.0 to qcacld-3.0 propagation
In the current code, when STA receives CSA IE then host look and
operate on extended channel switch element eventhough our own
channel-bonding state is not enabled. This causes setting up of
secondary subband and state in new channel during CSA eventhough
the secondary channel offset is set to zero in CSA beacon.
Fix is to set the Secondary Channel Offset if our own channel
bonding state is enabled.
Change-Id: I82ca9737f49937176801bc4cbbdd3e2fb77d4749
CRs-Fixed: 1080260
Firmware may send STA kickout event even during association. This
change the limSmeState to eLIM_SME_WT_DEAUTH_STATE from
eLIM_SME_WT_ASSOC_STATE. Due to this assoc confirm is not processed
and HDD remains in connecting state and thus all subsequent scans
fails.
Fix this by processing STA kickout event only in
eLIM_MLM_LINK_ESTABLISHED_STATE
Change-Id: I75b4814aade80ca74ef9aef67ecea99a3bc15148
CRs-Fixed: 2012727
Add changes to get/flush scan results. Also add support to
convert legacy filter and scan entry to converged one and vice
versa.
Change-Id: I590745af3943a8975fb0644d02e58b2133c9f1cb
CRs-Fixed: 2013212
Add changes to correct max value for passive monitor interval for
adaptive dwell time.
Change-Id: Ib59e0d5843eda37a42733b5ec81ed3a70455c449
CRs-Fixed: 2014385
Some functions/structs are defined only when
QCA_CONFIG_SMP is enabled, however, they
are also used when QCA_CONFIG_SMP is disabled,
which will cause compilation errors.
Move the definition of these functions/structs
out of macro QCA_CONFIG_SMP.
Return type of cds_alloc_ol_rx_pkt() is not
void, but there is no return statement for
it when QCA_CONFIG_SMP is disabled.
Add 'return NULL' for cds_alloc_ol_rx_pkt().
Change-Id: If6f4298c27f0089219bbceb4a9d0ba1a295f8dcd
CRs-Fixed: 2010568
qcacld-2.0 to qcacld-3.0 propagation
Add an ini option for configuring rate for tx mgmt frame.
It sets the existed wmi cmd: WMI_VDEV_PARAM_MGMT_TX_RATE right
after vdev created. Since FW resets mgmt during vdev up, also
set mgmt rate after sap/sta vdev up.
CRs-Fixed: 1103895
Change-Id: I93bbe0978963abf0b887dbf2add5bfc2912f6de1
qcacld-2.0 to qcacld-3.0 propagation
Add ini config option to disable abg rate for tx data.
Change-Id: Ideb1fd6471c6fbdade99b4c7c533cb1bf3bf206c
CRs-Fixed: 1111787
1. The paths for driver to get ini and fw files
are incorrect for QCA SDIO chip on Dual-WiFi
platforms, with wrong prefix or no prefix.
Correct prefix for ini file, from '<mod_name>'
to '<chip_name>/'; add prefix '<chip_name>/'
for fw files.
2. For QCA9377, there is a special cnss API for getting
fw names, it's cnss_get_qca9377_fw_files().
Use the right cnss API to get fw files for QCA9377
Change-Id: Ia7616153b6823e9550703e649c7fc21ab306ca07
CRs-Fixed: 2008217
qcacld-2.0 to qcacld-3.0 propagation
The ol_tx_desc_free might access the invalid content of vdev referred by tx
desc, since this vdev might be detached in another thread asynchronous.
Go through tx desc pool to set corresponding tx desc's vdev to NULL
when detach this vdev, and add vdev checking in the ol_tx_desc_free to
avoid crash.
Change-Id: I3afa63659e047bbbf008440335fb71c8295ca353
CRs-Fixed: 1087690
Reason for association failure due to timeout is not sent
to user space.
Add changes to send association failure status code to
user space using cfg80211_connect_bss or
cfg80211_connect_timeout.
Change-Id: I060bdfdfd7875c7e945d1b2bf011c14a680b24f1
CRs-Fixed: 2012804
qcacld-2.0 to qcacld-3.0 propagation
If disconnect is already in progress because of deauth received
from AP when disconnect is also received from supplicant, there
is a possibility that completion variable disconnect_comp_var
gets reset in hdd_DisConnectHandler because of disconnection
in progress from AP before completion variable disconnect_comp_var
gets initialized in wlan_hdd_disconnect to handle disconnect from
supplicant. This can cause a delay of 5 seconds eventhough disconnect
was already happened. This waiting is not required when previous
connection status was not eConnectionState_Connecting. Fix this delay
by adding a check to avoid waiting when previous connection status was
not eConnectionState_Connecting.
Change-Id: I58ac638622c5164fa1e9fe45c52ebf60fab2340f
CRs-Fixed: 1093562
Current driver is packing IEs associated with association request
out of order which is violating 80211 spec.
Fix the order in association request based on element ID.
Change-Id: Ie7a69ce2999d5a5d8ba88bac1e988f0a41dd10a6
CRs-Fixed: 2006920
In function sme_get_beacon_frm, result_handle maybe used uninitialized.
Fix this by initializing result_handle with NULL value.
Change-Id: Ia1437b6adf1bbcfe7d2d87b42a252e4a0ee6f5ea
CRs-Fixed: 2008665
Check for HDD context validity for SAP Net dev stop ioctl to
resolve crash during SSR.
Change-Id: I09c57da5db4b072a8066f3c2b22c748cd79c293c
CRs-fixed: 2007350