NBUF alloc fail prints are flooding the console,
which is not allowing watchdog resetting to occur
ratelimit is added to reduce the print statements
flooding the console.
Change-Id: Ib6531070c8b80d64ffea62209912e5166e0414c1
One of the most common stability issues encountered by the stability
team is watchdog bite due to excessive logging. Add a feature to track
logging to dmesg using a tumbling window and counter, and panic if the
configured maximum number of logs for that window is exceeded.
Change-Id: If83c6dfccb9d191b02a3a7166b065c0a0704f969
CRs-Fixed: 2338385
In case of fast patch CE_state->receive_count can go beyond
HIF_NAPI_MAX_RECEIVES as batch processing is happening. This
is causing bucket calculation working. In this case setting
receive_count to HIF_NAPI_MAX_RECEIVES as a fix.
Change-Id: I3179b6f9f893342ead68e46dc4b75fd55e6c7839
CRs-Fixed: 2331579
Currently center_freq_seg1 value is not getting reset for
non 160, 80+80 width and 2.4 GHz channel which are stored in
sap context, in case of SSR on SAP restart, this old value
can be used which might be some junk value and can lead to
stop bss as a result of invalid values.
To resolve this issue reset the center_freq_seg1 to 0 for
non 160, 80+80 width and 2.4 GHz.
Change-Id: Ie4bffb1c2424024fab32d30d7d790f99d54ad58c
CRs-Fixed: 2326392
invalid peer stats in rx when m_copy is enabled,
adding stats for invalid peer at pdev level
Change-Id: I394cfad0642eeb66062d8ab79858a8d7720d8c9f
CRs-Fixed: 2309099
For special packets DP tracing enable_check is called with
NULL nbuf, it returned false, preventing special packets from
logging. So ignore NULL nbuf and return true to enable DPT
logging.
Change-Id: Ieccc9e77195f5c8ff590c6964972705c362c16ba
CRs-Fixed: 2335301
In wlan_cp_stats_psoc_obj_create_handler() multiple error paths
lead to label wlan_cp_stats_psoc_obj_create_handler_return.
In the label, posc_cs is not null checked before passing to the
csc->cp_stats_psoc_obj_deinit() causing NULL pointer dereference.
Change-Id: I82a48cee7d2734a96960aeedff42fc4cdf94bf9c
CRs-Fixed: 2336830
wlan_vdev_get_bsspeer doesn't hold ref
count on peer.
Use wlan_objmgr_get_peer to get peer
to avoid peer free race condition.
Change-Id: I04bfcf8ca20fa49d81a9e59aafc31caab98374a1
CRs-Fixed: 2337868
When WMI_SERVICE_READY_EXT_EVENT is received from firmware, the
function extract_chainmask_tables_tlv is called to update the
soc caps and other capabilities to the host. hw_caps is
extracted directly from the param_buf value received from the
firmware and hw_caps->num_chainmask_tables is used to traverse
through the chainmask table and update the values to it from the
param_buf->mac_phy_chainmask_caps. hw_caps->num_chainmask_tables
is validated against PSOC_MAX_CHAINMASK_TABLES but not against
param_buf->num_mac_phy_chainmask_combo. This can cause potential
out of bound read in extract_chainmask_tables_tlv.
Validate the value of the hw_caps->num_chainmask_tables received
from the firmware against param_buf->num_mac_phy_chainmask_combo
before updating chainmask_table.
Change-Id: Ibf438760a9219f4ff82d29b42aa30f4dcf626364
CRs-Fixed: 2336842
Add policy_mgr_get_current_pref_hw_mode_dual_dbs
API for dual dbs HW. In Dual DBS mode HW, it
decides the actual DBS mode when DBS required.
Change-Id: Ic45b09fa49e1ff923f1a2dad50a3ce7e4007a3fd
CRs-Fixed: 2338105
Before posting the TDLS_CMD_TX_ACTION to scheduler thread take the
vdev ref with module id TDLS and release the ref as part of
freeing this command.
Change-Id: Id05962a1c9fc415199f347c5d85d1e0670dc247c
CRs-Fixed: 2338113
Add new fields tx_tooshort, tx and rx discard
control plane stats at vdev level
CRs-Fixed: 2327398
Change-Id: I9f3ae1f4d043319fec8f08752d9112ab5e9f6ef9
For HK V2 each fft bin is 2 bytes due to
some HW limitations. To fix this modify the
fftbin size WAR to convert 2 byte fft bins to 1 byte
and forward to applications via SAMP message.
CRs-Fixed: 2319415
Change-Id: I6c27d6804ddaf91ed9e6695e0b21a81115744fff
With the enhancements to the serialization component
many debug prints were additionally added.
The new debug prints were adding up to the text size
of the serialization object files.
Removed few unwanted prints in the new serialization code.
Change-Id: I366228618fe07f7637ff3bae96abab27b3b04b87
CRs-Fixed: 2333170
Ageout MEC entry after two minutes of inactivity and changes
included to modify existing WDS entry of a peer to MEC on promption
Change-Id: I0ad89671a053250413cbadad2d495f5abff89ac2
CRs-Fixed: 2316368
Currently, the QDF debugfs feature returns a no-support error code for
the init call when the feature is compiled out. Instead, return success
to avoid wlan load failure on some configurations and to make error
checking by the caller more straight forward under all configurations.
The deinit call also has the same problem, but none of the callers pay
attention to the return status. Additionally, the deinit function
returns success unconditionally when the feature is compiled in.
Rather than changing the return status to success when the feature is
compiled out, change the return type of the deinit function to void.
Change-Id: Iac3a47505142e149f70c67c5ba6cf0b2428d9488
CRs-Fixed: 2336872
During SSR, target country code is reset to default, may not same as
current country code, need restore it.
Change-Id: Ib8f51755f442d73ad6e11bbfb18fb22a60f724ba
CRs-Fixed: 2318283
print format "pS" in module will call module_address_lookup in
kernel, which will disable preempt. This could result in some
performance issues, like block rt task vsync_retire_work and
then cause janks.
Change-Id: Ic334490b607d2fcee9eede2a0175c0f92cfc7ffd
CRs-Fixed: 2304391
Rx ppdu_type_str displays incorrect ppdu type in
data_txstats output. Change ppdu_type bit length from 2 to 5
to support all types.
Change-Id: I5441140b0d90896c296c8f61d5863e711da95149
CRs-Fixed: 2330614
Maintain SG/TSO desc_cnt at pdev stats instead of ingress
stats to support legacy stats and change the fw_rem counter
to cdp_pkt_info to have packets and bytes information
for legacy platforms as part of convergence effort.
Change-Id: Ib908e8d1c1d78d191418d3884f41f981ba002b54
There are several duplicated spin unlock function calling in the
AC based TX flow control path. Remove this redundant codes.
CRs-Fixed: 2329973
Change-Id: I483bf97612b8e56f745360a3e84fbdff8c357ea9
num_chainmask_tables used as a for loop variable in
extract_service_ready_ext_tlv(), is never bound check
and may lead to OOB.
Change-Id: Ib0fdde8386fc372abee44934e10e9f54b0fe25b8
CRS-Fixed: 2330943
In case of heartbeat failure or deauth from AP,
From lim Del sta requests are sent to FW and with response
required false, Since del sta response is not received
TDLS component is not notified to reset the local
tdls component structures and also upper layers are
notified of this peer deletion.
Change-Id: Ica0b150df7646af60868b2806432795896c75bcd
CRs-Fixed: 2324559
Adding additional flag for commands which has been marked
for activation and for which cancel has been received.
After the commands marked for activation and also marked for cancel
really gets active, we remove the command from the active queue.
Change-Id: I5eb42459e216ad8cbcee15ce9a7572dec7f776a2
CRs-Fixed: 2326639
In dp_soc_dettach flush the reo command list before freeing
pdev to avoid use after free of pdev memory in reo command
callbacks
Change-Id: I2644b259ed9b10dee9b11007ed9064dd7d2399a9
Provide WMI support for AP channel switching enhancements.
As part of FR50393, AP is provided with the ability to notify
capable connected peers to follow it to the new channel bandwidth.
This change provides WMI support for sending required parameters to
the firmware to update the peer list internally with the MAC address
of the capable peer along with it's new channel width.
Change-Id: I0696efd2b1c883d15de23364677050618f114743
CRs-Fixed: 2316625
When a DFS pulse is being processed, a channel change change can happen.
And the channel change initializes the radar filters which means
it frees and allocates the DFS filtering data structures.
This may result in memory violation (NULL Pointer dereference).
To avoid the memory violation lock the filter initialization and
DFS pulse processing.
Change-Id: I37c80d409433a9f97bd1f5e78b2b1e780b130290
CRs-Fixed: 2317455
Add API to clear CAC started channel in the DFS component.
Also, when AP detects the RADAR in DFS channel and restarts the AP vap in
NON-DFS channel, call MLME state machine to clear the DFS_WAIT flag and
move the state to RUN. Since MLME state machine is per vap, move the
NON-DFS check in dfs_clear_cac_started_chan() to MLME and call
dfs_mlme_proc_cac() per vap.
Change-Id: I67033aa6ea819b6ed5d39a3911191d2051f731fc
Acked-by: Shashikala Prabhu <pshashik@codeaurora.org>
CRs-Fixed: 2324561
Add original hw mode change request vdev id to
NSS update APIs, so that the correct vdev to be
used to do post processing after hw mode change,
such as doing connect for hidden SSID case.
Change-Id: Ie7f7b55a100ec4e23be2fc710d9b0d83cb33088d
CRs-Fixed: 2336439
Currently the driver selects the first channel available
in the PCL channel-list which could be STA channel itself,
and it may happen that this STA channel is not valid for SAP
bringup(SRD).
Fix is to select a non SRD channel from PCL channel-list
for SAP.
Change-Id: Ia9d3bfc0534e28972a6ddb0d588b62a55e3f6e23
CRs-Fixed: 2308072
num_mem_reqs used as for loop vairable in init_deinit_handle_host_mem_req,
will give user control over tgt_hdl->info->num_mem_chunks used in
init_deinit_alloc_host_mem() which is later passed to
init_cmd_send_tlv().
In init_cmd_send_tlv() num_mem_chunks is used as a for loop variable,
and can result in OOB issue.
Change-Id: Ica9bd42e596da19a4033ffd9424ddeedb593bad1
CRs-Fixed: 2331844
There will not be any AST entry
for HMWDS Seconday
Hence add check for the same in
del_peer_del_ast to avoid deletion
for such entries
Change-Id: Ia96856d93531200e27e0d0a97b80ed6ec1baa42b
WMI endpoint will receive commands
from both user context and kernel
context
Hence making the it as asynchronous
Change-Id: Ia969bb9db6a8978a7f50bc19f9f602dfbc1c83ea
CRs-Fixed: 2313262
MultiVap if no sta associated or monitor mode,
data packets do not carry any rx rssi
or rate values while aggregating pdev or vdev stats.
Do not update for vap in if rx rssi or
rx rate value is zero.
Do not attach monitor vdev to vdev list
Change-Id: Ie64a05d795660d557d928cb9b874fa5e702f4f55
Add a flag for AST entry to indicate if AST entry is
mapped to AST table and use this flag while dereferncing
ast table with ast_index in ast_entry
Change-Id: I8c90f3c40116e24303aac8a7bd53e8f5b67e22bf
In extract_roam_scan_stats_res_evt_tlv(), validate
num_roam_scans to avoid any possible integer overflow
when receive larger num_roam_scans value.
Change-Id: I0f3bbf64fac8c151789de2f93a77c9af29b855d1
CRs-Fixed: 2331868
the fixed_param TLV structure is pulled from the WMI message and
assigned to chan_list_event_hdr. num_2g_reg_rules and
num_5g_reg_rules are assigned from the TLV structure, then passed
to create_reg_rules_from_wmi without length check, out of buffer
may happen.
Change-Id: I70c9d74ef94161896e1c7700c73943040f3a77e1
CRs-Fixed: 2327667
As part of convergence, the CE descriptor history was moved to dynamic
allocation, per HIF handle. For MCL, this caused the allocation to
consume limited pre-allocated memory, causing regressions. For the MCL
implementation of alloc_mem_ce_debug_history(), use a static buffer
instead to avoid complications.
Change-Id: I8b0c0a2502d4abfd465749328a35004ffed585ca
CRs-Fixed: 2335146
Abstract BMI callback from common module and move it to specific component.
Add Export symbols to support modularization in WIN. (BMI)
CRs-Fixed: 2324081
Change-Id: I1ec463d41d238ce81254ecc1f0bb1dc545e1248e
While extracting green ap egap status info there is no
sanity check for egap info event and chainmask event which may
lead to NULL pointer access.
To prevent this NULL pointer access add a sanity check for
egap info event and chainmask event.
Change-Id: Ib9cc273f12bb159bce309065279230e96925be7f
CRs-Fixed: 2331873