Remove duplicate code in connection manager and call
same API from connect complete and roam complete.
Change-Id: If7e9e1069acb1dede9433d16ef96f37029ff716d
CRs-Fixed: 2960921
The mutex disconnection_status_lock is not initialized for SAP mode but
destroyed in hdd_cleanup_adapter.
The fix is intializing this lock when the adapter is opend for all modes.
Change-Id: I906722641482c1ad0bcb89fcfe35ded23a15203e
CRs-Fixed: 2958599
For APsI pld_get_mhi_state() and pld_is_pci_ep_awake() return
proper value for buses other than IPCI where these APIs are not
supported.
Change-Id: I2dfe8118d29aa2bc75484ff4d708b21eba264350
Currently, host sends DS param to fw based on
channel number but channel number may be same
in case of 6G and 2G due to which IEs can be
included in case of 6G which is not required.
Fix is to send DS param based on freq to
avoid addition of IEs in case of 6G band.
Change-Id: Ib711731fda3cfb0117478e6b1e026f40639a7fbb
CRs-Fixed: 2942323
It's also needed to notify supplicant when TKIP michael mic failure was
detected under fragement case, so supplicat can start 60s protect policy
for association.
Change-Id: I9383d653ac957425e09a60a2f495e575741d073a
CRs-Fixed: 2942680
pe_session->lim_join_req is NULL for LFR2.0 roaming case, need to
add null check before access. If null get mbssid_info from
pe_session->pLimReAssocReq.
Change-Id: I17314a52f3b3fbc57908a7f3f8a369229baf02fd
CRs-Fixed: 2958899
MLO mgr does not have pe session information, when it delivers vdev mlme
event, the event_data_len is 0 and event_data is NULL.
In the vdev mlme op if event_data is NULL, we should get pe session from
vdev_mlme_obj.
Change-Id: I78072cfd80d05d032a734f33a5b5f090739bd0b3
CRs-Fixed: 2950291
Send TDLS STA notify only when connect is success.
This is required as incase connection, it will increment
tdls_soc_obj->set_state_info.set_state_cnt.
It that connection results in failure, then also, without
this check this count will increment.
For subsquent connections, in tdls_send_update_to_fw()
because of incremented count, it will be treated as
FW Set State is already sent and will not send it
which will result in FW crash while adding TDLS peer.
Change-Id: Ic3bedfb1357ac703f98d2d0285dcc85605bab97e
CRs-Fixed: 2955401
Race condition occurred as rx_thread did not get scheduled
before timeout and gro flush happened in vdev context. At
the same time, rx thread got scheduled and add skb to the
napi queue resulting in crash.
To fix this, Increase the timeout value so rx_thread gets
time to wake up, do gro flush and reset the vdev_del_event.
Change-Id: I2075eda91b1568cce3083869f510fc212dd721f8
CRs-Fixed: 2949803
Add sanity check mac context before using it in API
wlansap_get_csa_chanwidth_from_phymode.
Change-Id: I8df501e850b606615c899321fc23636ad985ab23
CRs-Fixed: 2955278
Currently, host sends bw value to upper layer in response
of GET_USABLE_CHAN command. but upper layer requires bw
value in form of nl80211_chan_width enum and considering
bw value as invalid and resulting into 0 bw.
Fix is to convert bw value to nl80211_chan_width enum
and send to upper layer.
Change-Id: I6ae523c35561120c28b08f3aa9782bb749337c8c
CRs-Fixed: 2957062
It will check connection status and then return channel width, which
doesn't work for SAP mode. So, this change won't check connection
status and return channel width in des_chan.
Change-Id: I1cf8c50d458eb1dee85a79ef131a4337ef35c210
CRs-Fixed: 2955868
Currently nbuf is being used to get gso segments after enqueue
to DP RX thread, this will lead to use after free issue because
RX thread may process and even free the buffer by the time nbuf
is accessed for getting gso segments in enqueue/softirq context.
Fix this by updating gso segments before nbuf enqueue to DP RX thread.
Change-Id: I2cc93bf9a44e2d487c1a6d474349cf5c0c5db76a
CRs-Fixed: 2958132
In lim_ft_prepare_add_bss_req due to change
Ic4a992acfce186f7248dcc99d0c7b44ce38f099b the action was removed
but if condition was not removed. This left over if condition is
causing the vht_caps to be NULL in VHT20 case.
Fix this by removing the left over if condition so that vht_caps
is filled all the time.
Change-Id: I196fd3cfb44fa3281b9843a61242520e0888d2c4
CRs-Fixed: 2958411
When ipa setup pipes fails in wlan_ipa_uc_ol_init API,
tx buff mapping is not done but during deinit path
tx buff unmapping is called without mapping.
Fix this by resetting uc_loaded flag to false when ipa pipes
setup failure is encountered.
Change-Id: Ic34320e56cee9e60381d9203dd95e268d0ef392b
CRs-Fixed: 2957612
Currently driver does not consider secondary channel list
for ACS which needs to be used for SAP related operations and
because of that in sap get freq list driver is selecting some
frequencies which are not valid for SAP operation and from
frequencies driver selects ACS frequency and gives to upper
layer resulting in an invalid ACS frequency to user space.
Now when user space tries to start ap on this frequency, SAP
doesn't come up on this frequecy as this is invalid frequency
for SAP.
To address above issue consider secondary channel list for ACS
in sap get freq list so that only valid frequencies for SAP
are selected for ACS.
Change-Id: Ic7f1cb8134615a9195884d55bfb8111898ff74cb
CRs-Fixed: 2955162
When flow is added in CMEM path init time stamp is not
handled, so initialize flow init time stamp in CMEM path.
Add Fisa error print during reo id mismatch, print flow
and nbuf details which helps to debug the issue even if
local stack variables are not available in dump.
Change-Id: Ibcc44bd8558cc687279bb34267d60b9882d33a24
CRs-Fixed: 2946825
In the scenario where ipa connect pipes fails in the
wlan_ipa_uc_loaded_handler API, uc_loaded flag is not
reset. As a result of this, in wlan_ipa_uc_ol_deinit,
ipa_tx_buf_smmu_unmap and ipa_wdi_disconn_pipes APIs are
invoked incorrectly.
Fix is to set the uc_loaded flag to true only if connect
pipes and tx_smmu mappings are successful in
wlan_ipa_uc_loaded_handler. Also, initialize the uc_op_work
in wlan_ipa_uc_ol_init prior to the uc_loaded check to
avoid a possible race condition which could also result
in the similar issue as above.
Change-Id: I119170413cb9b5e03ec476c9a69d9effaa460c01
CRs-Fixed: 2940833
Currently, osif_request_alloc is done and waiting for response
after posting the message NDP_END_REQ. But this may lead to
invalid memory access if message gets processed in scheduler
thread and response also comes before the request is allocated.
Allocate the request before sending message to avoid this.
Change-Id: I88b0a8be229e779526f0f3cf184b191e00872ee8
CRs-Fixed: 2782045
Currently, cp stats are received through kworker thread context.
This causes race conditions/out of sync issues if any common data
structures are handled in parallel in scheduler thread context.
There is no need to receive the cp stats on kworker thread as per
current design. So, move the cp stats event handling to scheduler
thread to avoid any race conditions.
Change-Id: Id8134003e6f7a3e0368b20c496f650e0b7025b9e
CRs-Fixed: 2928876
In function __wlan_hdd_cfg80211_get_usable_channel use
dynamic memory allocation for get_usable_chan_res_params
structure to avoid increase of stack frame.
Change-Id: Ib3b5686a7af068fd1d0435bc24eda5d9e57bf1d7
CRs-Fixed: 2950726