Remove CFG_CFR_ALL from CFG_ALL and avoid duplicate definition, since
WIN needs it and add it to CFG_CONVERGED_ALL by another change.
Change-Id: I4fe82573d069a06bf130937a3e38d045bb80c695
CRs-Fixed: 2673162
Whenever there is a subsystem restart the sap is internally restarted
in the driver, whenever there is a failure during this sap restart
there could be a memory leak.
Fix is to free the beacon memory whenever the sap restart fails.
Change-Id: If329aacceef50124956bddc049ee8e55e880177d
CRs-Fixed: 2671251
DP init/deinit flow to have dp_soc_init/dp_pdev_init
APIs where it takes care of initializing rings,
descriptors and DP data structures that was earlier
done as part of dp_soc_attach/dp_pdev_attach itself
This is to maintain symmetry across wifi load/unload
wifi load to call:
1. dp_soc_attach
2. dp_soc_init
3. dp_pdev_attach
4. dp_pdev_init
wifi unload to call:
1. dp_pdev_deinit
2. dp_pdev_detach
3. dp_soc_deinit
4. dp_soc_detach
Change-Id: I5889e0eafdb2fa6319c440725590e7a3014d8be0
CRs-Fixed: 2674081
Currently driver does not advertise the bandwidth
capability for 5ghz band in the he capability
structure of wiphy, result of which is supplicant
is unable to turn on P2P-GO interface in HE40, 80
mode.
Fix is to advertise that the driver supports all
the bandwidths in HE mode which is supported by FW.
Change-Id: Ie94ad9784243ce1f562938b1a50c53f3a25db834
CRs-Fixed: 2673025
Currently the driver does not update the peer
rate flags after CSA and hence the rates and
link speed are wrong.
Fix is to update the rate flags after CSA so
that the reported link speed now is correct.
Change-Id: Idb51447b98acc281625d1ed0dae983fe2da2426a
CRs-Fixed: 2669792
Check for hdd_context validity before accessing current throughput level
in hdd_get_bandwidth_level.
Change-Id: I8cb3a0e484e4350938e28c4f704498aa24ed2c14
CRs-Fixed: 2669231
With recent 6GHz changes set mon chan api has changed to accept
the frequency as an argument instead of the channel number.
Currently existing iwpriv interface is still passing channel
number as an argument to this api which results in the failure
of this command.
To resolve this above issue, convert the channel number received
as an argument to frequency at the entry point of the iwpriv
command and invoke set mon chan api with the fequency as an
argument.
Change-Id: I6bb0682ff3cf5c6e8086012522ea1455a1cecae4
CRs-Fixed: 2675499
Reset the HE 160MHz bandwidth related capabilities if the
connection mode has lower bandwidth.
Set the 160MHz support in HE channel width capability if
AP is 160MHz capable and current operating mode is 80MHz.
Change-Id: Iddb678ac7543875a3a7d15bb38e13dd27086360b
CRs-Fixed: 2674741
RSN caps are anded with AP RSN caps, but it should be self caps.
Due to this even when PMF required is configured in self capability
while connecting to non pmf required AP, self cap doesnt include
self capability of pmf required.
So do not and RSN's self caps with AP's caps
Change-Id: Iae84486e13859fc8deb342d7b774129dc26ae323
CRs-Fixed: 2676337
Currently there is no check for fw down during runtime suspend. This is
causing issue when host has already received fw down event due to
injected fw crash.
To avoid this, add check for fw down during runtime suspend.
Change-Id: Ic518f7fc95fa3ff9f9a3bd8973e9e37e9ebcf52f
CRs-Fixed: 2676841
Currenly when driver receives get station info command in
in sta mode, he operation information is also copied to the
response buffer. Host does not validate he operation info
and tries to do nla put which is leading to NULL pointer
dereference.
To address above issue, add a check to validate the he operation
info before nla put operation.
Change-Id: Iaa093e4d4e3a9cec978f16c69a66c778b2dcf79f
CRs-Fixed: 2676773
Added debig logs in __wlan_hdd_cfg80211_channel_switch and in
wlansap_set_channel_change_with_csa
Change-Id: Idf0f29f21d879e32a0ad8e1db25fc8360ec36800
CRs-Fixed: 2676407
Remove the calls to wlan_reg_dmn_get_opclass_from_channel API
when SAP is changing channel by ECSA/CSA.
The API accepts channel number and will cause issue when 6GHz
band is supported in target.
Change-Id: Ib6c67417f1a0edae88b5e714e3ed23c589e7eb62
CRs-Fixed: 2676354
In the case of roaming failure, FW sends HO fail indication to host
and initiates peer deletion in fw. Host should not queue deauth
frame to fw in case of HO_FAILURE.
Due to commit id I99bf4573b59dc810e0a1529fcd48061d10acae4e, host
sends a disconnect request to fw as part of HO failure handler.
There could be a possibility that host queue disconnection frame
after the vdev down in fw. This leads to assert in fw.
Fix is to set process_ho_fail variable in disassociation request
to true in case of ROAM_FAILURE. This flag tells LIM whether to
send the disassoc req OTA or not.
Change-Id: Ia504ff3ba8b07fcf66226b588eed379a71e2b896
CRs-Fixed: 2674297
Increased logging in policy_mgr_is_concurrency_allowed
by adding debug logs in policy_mgr_allow_multiple_sta_connections
and policy_mgr_is_6g_channel_allowed.
Change-Id: Ic285566209b4d63df579913e7390c48891a04855
CRs-Fixed: 2674968
Set_nud_stats request is received at driver when
roaming is in progress. WMI command sent for this
request causes an assert in firmware.
Fix is to reject set_nud_stats request received during
roaming.
Change-Id: I41e3b665ef02abcac5b59ce151c3938497be6283
CRs-Fixed: 2674624
This is to fix the error of missing soc NULL check.
Before dereferencing soc for decoding pdev handle,
add the NULL check for soc.
Change-Id: Idade64fd88790e9a6faffceb99fc42dcd683677d
CRs-Fixed: 2668317
If fw is down when runtime pm, runtime pm will return EFAULT
to kernel, so kernel will treat it as a critical error so all
future runtime PM API calls will return error, this is not what
driver expected.
Always make sure driver only return EAGAIN or EBUSY to kernel.
Change-Id: I651f75ee615af819a080e2955ac64a986620375f
CRs-Fixed: 2674531
Kernel includes the BSS entry in to the following
data structures.
1. bss list rdev->bss_list
2. bss search tree rdev->bss_tree
It also stores the pointer of the connected bss in
“current_bss” .
If the driver does an unlink of the bss it deletes
the entries from the above data structures,
but does not update the current_bss data structure.
This leaves the current_bss pointing to the
previous deleted bss entry.
Thus, when the next set of newly found bss entries
start finding for the bss entries in the bss_tree,
the comparison with the already freed bss entry
above shall lead to an invalid access.
Fix is to remove unlink BSS from the channel change
notify path as the kernel can take care of it.
Change-Id: Ic0dfa6423db169e63ac80cd5a0f3ce05f0438c5d
CRs-Fixed: 2673629
On receiving nbuf list in hdd_rx_packet_cbk, is_eapol and
is_dhcp flags are set to false only initially. In the
loop over all skbs, if any one of these flags is set to
true, these flags are not reset for each skb leading to
incorrect stat values and possible OOB access to rx_delivered
and rx_refused array.
Fix is to set is_eapol and is_dhcp flag to false in the
beginning of the nbuf loop.
Change-Id: Iacc7620f26fb0f71dee931c78993a75232e767b0
CRs-Fixed: 2669412
When the driver unload is triggered, the device could be in the
runtime suspend state, so the 1st thing driver does to do runtime
resume, During this runtime resume the bus bw timer could be started
which in some race conditions is not getting stopped.
Stop the bus bandwidth timer after the wlan chip is runtime resume.
Change-Id: Ie29f9b4d44cea5c5624020aa3b6b3f08489860d3
CRs-Fixed: 2672120
For each peer connected to SAP, there is a corresponding entry maintained
in HDD called station_info. Currently, this data is being stored as a
hash table. There are two primary complications in using a hash table
in this scenario:
- The max peers supported are 32. This is a very small number to
use a hash table for. The minute time complexity gains for a
fetch/insert operation do not justify the implementation
complexity.
- The hash table is being implemented with the use of kernel ht
APIs. These do not provide the granularity to achieve proper
synchronization as is needed in driver.
To address the above points, move the storage of sta_info from hash
table to linked list. This will provide simpler implementation and also
give access to using proper synchronization methods.
Change-Id: I7d3a8a2937048f29a867453a91dfc1864932619e
CRs-Fixed: 2668300
This is to fix the error of missing vdev NULL check.
Instead of dereferencing vdev to get the vdev_id, can directly
use adapter's vdev_id, so that can avoid unnecessary vdev NULL
check and lesser operation.
Change-Id: I7d84046c405a82cd6967a8d79142acd5618e18db
CRs-Fixed: 2669233
Fix KW issue: therm_data.levelconf array elements are used uninitialized
Initialize therm_data in wma_update_thermal_mitigation_to_fw to zero
Change-Id: I40c4f57d70036956d0d618ad560ea9ea0f7dc07d
CRs-Fixed: 2669375
The mac address as pointer which is allocated by
wlan_hdd_get_intf_addr() may be null, and there is risk
about null pointer dereference without sanity check.
The fix is to add necessary null pointer check.
Change-Id: Ie0c3f841174e78b0d0b35e321ef7ca6b4cfdbe9a
CRs-Fixed: 2673727