提交图

105 次代码提交

作者 SHA1 备注 提交日期
Vinod Kumar Pirla
0d945daa64 qcacmn: Extend vdev stop and peer delete cmd for link switch
Enhance WMI command of existing peer delete and VDEV stop to
add new TLV to carry MLO params with link switch BIT set when
link switch is in progress.

Change-Id: I50b1aa48e4e2c976a56bcd3b75395eef6830e627
CRs-Fixed: 3663340
2024-02-18 22:37:29 -08:00
Chunquan Luo
633bdcaa81 qcacmn: Switch static func of chan_width to common
Remove static from func target_if_phy_ch_width_to_wmi_chan_width
for it can be share at other place.

Change-Id: I2ec80040fbe61a7691b1ad8e7b6501eb154abb44
CRs-Fixed: 3578269
2023-08-25 06:05:15 -07:00
Vinod Kumar Pirla
a147f231ea qcacmn: Use VDEV response timer in PSOC for MAC update
Use the VDEV response timer infrastructure to hold MAC address update
requests sent to FW on VDEV which is in link switch progress.

As post disconnect and sending set MAC address request, the scheduler
thread is exited and to notify MLO mgr about set MAC address update
complete (or either timer expiry due to FW response timeout) and
further the link switch process based on response.

This code is only applicable for Link switch VDEV MAC address update
path. For MAC update request from userspace still use the same path
without starting the timer as for those wait event is already in place.

Change-Id: Ice3e6f7b00f0d9d08d6aa62ee9c1e4d183142358
CRs-Fixed: 3556517
2023-08-02 04:55:03 -07:00
Jianmin Zhu
35f33b2cbe qcacmn: Add API to convert chan width
Add API to convert channel width from wmi_host_channel_width to
phy_ch_width.

Change-Id: I3d7e45b63060e1093d4d44942fd863077e6462d8
CRs-Fixed: 3529281
2023-06-17 03:59:00 -07:00
Shashikala Prabhu
8b6fd27e6e qcacmn: Restart vdev mgmt rsp timer if UMAC reset is in progress
It is possible that the host queued the peer delete command to FW
but no peer delete event was received within the peer delete
timeout as FW initiated a UMAC reset.

When the vdev mgmt response timer times out, check if umac reset is in
progress. If so, restart the vdev mgmt response timer.
The entire umac reset handshake completes within 200ms if not
FW asserts. Hence no need to add the count check before
restarting the vdev mgmt response timer.

Change-Id: Ief3351b940658a870e303d191a3873bd60499023
CRs-Fixed: 3475168
2023-05-17 08:34:46 -07:00
Rachit Kankane
f5820188d2 qcacmn: Trigger SAP / GO channel switch
Trigger SAP / GO channel switch on receiving
wmi_csa_ie_received_event_id from FW in STA + SAP / GO DFS SCC
concurrency.

Change-Id: Iff60dffb71b170f56c4fbee4e297b81b87632a2a
CRs-Fixed: 3431365
2023-03-27 09:23:01 -07:00
Rachit Kankane
d525bc0165 qcacmn: Support WMI_CSA_IE_RECEIVED_EVENTID
Add support for WMI_CSA_IE_RECEIVED_EVENTID as:

   1. Register the handler
   2. Handler to extract the event

Change-Id: I9f476c7fbc51d9686d05fbdb5f46dec3bcd3c29e
CRs-Fixed: 3431363
2023-03-27 09:22:51 -07:00
Jeff Johnson
ad2ba39a28 qcacmn: Fix target_if documentation
The kernel-doc script identified multiple documentation issues in the
target_if folder. Some sub-folders which had a multitude of issues
were patched individually. Now fix the remaining issues.

Change-Id: Ia46f54eaec90762e61e590344760f3c3364088de
CRs-Fixed: 3417471
2023-03-07 09:33:26 -08:00
Edayilliam Jayadev
d36d1c8c2a qcacmn: Log time stamp of multi vdev restart response
Log the time stamp corresponding to the start of processing
of multi vdev restart response event.

CRs-Fixed: 3308918
Change-Id: Ia00923b3a1033097429d3856047a4b639408aab8
2022-11-02 01:48:08 -07:00
sandhu
901120c066 qcacmn: Fix incompatible function pointer assignment
Fix incompatible function pointer assignment.
Define a wrapper around mc timer callbacks to
make them compatible with standard scheduler
message callback function signatures.

Change-Id: I07829680d1758ccbd53e8b1fe10b0e30e100a2c6
CRs-Fixed: 3305719
2022-10-26 18:47:58 -07:00
Qun Zhang
3426948f65 qcacmn: Fix a scheduler_msg CFI failure
This fixes a scheduler_msg CFI failure for function
target_if_vdev_mgr_del_rsp_post_cb().

Change-Id: I296fdfca228799de2d84c6c41eb7cd656d8f3c52
CRs-Fixed: 3316600
2022-10-21 15:24:02 -07:00
Qun Zhang
4c70bb772f qcacmn: Make sure vdev manager delete isn't executed in softirq context
Currently host driver will call wlan_objmgr_peer_release_ref() in
tgt_mgmt_txrx_tx_completion_handler() to decrease peer reference
count when management frame TX completion is received. When the
last pending reference is management frame in some corner cases,
below call stack will be triggered:

BUG: scheduling while atomic: swapper/0/0/0x00000102
[  105.368065] Call trace:
[  105.368079] dump_backtrace+0x0/0x1b4
[  105.368087] show_stack+0x14/0x1c
[  105.368096] dump_stack+0xd4/0x10c
[  105.368105] __schedule_bug+0x50/0x70
[  105.368113] __schedule+0x980/0xc04
[  105.368119] schedule+0x70/0x90
[  105.368126] schedule_timeout+0x3c/0x5f4
[  105.368133] wait_for_common+0xb0/0x138
[  105.368139] wait_for_completion+0x14/0x1c
[  105.368148] synchronize_srcu_expedited+0xc8/0x100
[  105.368153] synchronize_srcu+0xa4/0x17c
[  105.368161] wakeup_source_remove+0x54/0x74
[  105.368840] __qdf_wake_lock_destroy+0x14/0x28 [wlan]
[  105.369518] wma_vdev_deinit+0x104/0x144 [wlan]
[  105.370190] wma_vdev_detach_callback+0xd8/0x108 [wlan]
[  105.370870] vdevmgr_vdev_delete_rsp_handle+0x48/0x54 [wlan]
[  105.371557] mlme_vdev_ops_ext_hdl_delete_rsp+0x2c/0x44 [wlan]
[  105.372245] tgt_vdev_mgr_delete_response_handler+0xc/0x14 [wlan]
[  105.372928] target_if_vdev_mgr_delete_send+0x2cc/0x2d8 [wlan]
[  105.373613] tgt_vdev_mgr_delete_send+0x15c/0x19c [wlan]
[  105.374296] vdev_mgr_delete_send+0x44/0x118 [wlan]
[  105.374975] vdevmgr_mlme_ext_hdl_destroy+0x7c/0x128 [wlan]
[  105.375662] mlme_vdev_ops_ext_hdl_destroy+0x2c/0x44 [wlan]
[  105.376341] mlme_vdev_obj_destroy_handler+0x2c/0xc0 [wlan]
[  105.377027] wlan_objmgr_vdev_release_ref+0x128/0x250 [wlan]
[  105.377710] wlan_objmgr_peer_obj_free+0x1d4/0x1dc [wlan]
[  105.378402] wlan_objmgr_peer_release_ref+0x1f8/0x22c [wlan]
[  105.379085] tgt_mgmt_txrx_tx_completion_handler+0x194/0x1c0 [wlan]
[  105.379751] wma_mgmt_tx_ack_comp_hdlr+0xdc/0x190 [wlan]
[  105.380425] ol_tx_desc_frame_free_nonstd+0x58/0xec [wlan]
[  105.381100] ol_tx_single_completion_handler+0x27c/0x2bc [wlan]
[  105.381796] htt_t2h_msg_handler+0xeec/0x1280 [wlan]
[  105.382506] htc_rx_completion_handler+0x8b0/0x9c4 [wlan]
[  105.383202] hif_pci_ce_recv_data+0x198/0x234 [wlan]
[  105.383899] ce_engine_service_reg+0x110/0x444 [wlan]
[  105.384595] ce_per_engine_service+0x70/0x104 [wlan]
[  105.385289] hif_napi_poll+0x94/0x3b4 [wlan]
[  105.385899] hdd_napi_poll+0x28/0x34 [wlan]
[  105.385928] net_rx_action+0x110/0x480
[  105.385948] __do_softirq+0x1e8/0x39c
[  105.385962] irq_exit+0xcc/0xd8
[  105.385982] __handle_domain_irq+0x84/0xbc
[  105.386001] gic_handle_irq+0x168/0x1b8
[  105.386015] el1_irq+0xb0/0x124
[  105.386035] lpm_cpuidle_enter+0x4fc/0x538
[  105.386051] cpuidle_enter_state+0x1c0/0x338
[  105.386063] cpuidle_enter+0x18/0x20
[  105.386084] do_idle+0x1a0/0x288

Due to some wlan chip doesn't support wmi_service_sync_delete_cmds
capability,  it will call target_if_vdev_mgr_delete_response_send()
directly to process further and doesn't exit softirq context, then
cause thread schedule under softirq context. To avoid above race
condition, let vdev manager delete response scheduled by driver
thread for MCC case.

Change-Id: I143b585bf0e7b7d3bfbe94656ea1c548cfd2efd8
CRs-Fixed: 3300663
2022-10-13 22:24:11 -07:00
Amruta Kulkarni
5b4c2d3d0c qcacmn: Skip recovery if no rso stop rsp from FW
Current issue:
During disconnect host sends RSO STOP command to FW
and expects a response from FW before continuing disconnect.
If roaming is disabled (from supplicant or due to race condition)
before sending RSO STOP cmd then FW does not respond to the request
and host will assert.

Solution:
To handle this case after rso timer stop expiry continue with
disconnect and clean up the rso state.

Change-Id: Iac7b25d881702b87f946fe0ecfba02b1d806f06b
CRs-Fixed: 3301394
2022-10-03 21:39:57 -07:00
Bing Sun
cb2c6707f6 qcacmn: Add API to update peer channel width and puncture parameter
Add API to send peer param WMI_PEER_CHWIDTH_PUNCTURE_20MHZ_BITMAP

Change-Id: Id05629b12059ff2258e196b3e9aa78f5fb52bda4
CRs-Fixed: 3269745
2022-09-23 20:20:55 -07:00
Pragaspathi Thilagaraj
38b8236ddc qcacmn: Add support for initiate pasn auth vendor command
Add support for initiate pasn authentication using the vendor
command: QCA_NL80211_VENDOR_SUBCMD_PASN
Fill the below required attributes to initiate PASN:
QCA_WLAN_VENDOR_ATTR_PASN_ACTION
QCA_WLAN_VENDOR_ATTR_PASN_PEERS
QCA_WLAN_VENDOR_ATTR_PASN_PEER_MAC_ADDR
QCA_WLAN_VENDOR_ATTR_PASN_PEER_SRC_ADDR

Change-Id: If33f54eafe5986b4571cc21a80fb0b61578db116
CRs-Fixed: 3232261
2022-07-14 04:12:51 -07:00
Amruta Kulkarni
34afd4b92f qcacmn: Define runtime pm lock for roaming
Define new runtime pm lock to be used during roaming.

Change-Id: Ia0d440d432b655c1e7fe41bdb12e4ad5207e7ad1
CRs-Fixed: 3239693
2022-07-12 02:30:48 -07:00
Pragaspathi Thilagaraj
f0cac26bbb qcacmn: Add support to delete all pasn peers
Add support to delete all pasn peers

Change-Id: I2c3d95cb8994693d8944d69624d2db0992f2f03d
CRs-Fixed: 3158523
2022-07-06 23:08:01 -07:00
Bing Sun
37a48b157f qcacmn: provide is_create_punc_bitmap when generateing puncture
Puncture is one of 11be feature. Even 11be compile macro is defined,
Dut can start AP with non-11be mode. Regulatory component has no idea
whether it should consider puncture or not. Puncture should be a
configurable parameter from caller.
When updating channel state, puncture should be considered for 11BE
AP. is_create_punc_bitmap should be set in struct ch_params and pass
it to reg_get_5g_bonded_channel_state_for_pwrmode.

Change-Id: I96fb131f2df201a827ab7d98ca099a38b008e0d3
CRs-Fixed: 3160259
2022-04-08 01:57:29 -07:00
Abhijit Pradhan
3f95481d0e qcacmn: Add powermode APIs under a new macro
Use  CONFIG_REG_ 6G_PWR_MODE for the new API.
Use "_for_pwrmode" as suffix for the new functions.

Change-Id: I9b84944a59062277b76bc48877c47ea5afada0ec
CRs-Fixed: 3133023
2022-02-28 12:57:10 -08:00
Hariharan Basuthkar
e7b559d010 qcacmn: Replace reg curchan with 6g ap power based chan list
The consumers of the current channel list may want to search through 6G
channels that are not part of current channel list and belong to channel
list of different power mode.

Therefore, replace the regulatory current channel list with that of 6G
power based channel list.

Change-Id: Ie2ff8bbfb50a5f95f584b134b18246cb28b1c406
CRs-Fixed: 3110987
2022-02-28 12:57:03 -08:00
Srinivas Dasari
f8921a74b9 qcacmn: Wait for RSO stop response from firmware
Firmware doesn't expect any vdev commands from host while RSO stop
is happening. It sends a response to the RSO_STOP command once
it's done with cleanup. Host needs to run a timer and wait for a
maximum of 6 seconds for the response. Host can stop the timer and
allow the commands to firmware in the below cases,
1. RSO_STOP response with success status
2. RSO_STOP response with HO_FAIL status followed by
   HO_FAIL event: Host needs to wait till HO_FAIL event is
   received

If firmware doesn't send any response in the 6 seconds wait, issue
a recovery to help to check the firmware state.

Change-Id: I4577f9b0aac71c0c86bd32b59e69d9527bf107b9
CRs-Fixed: 3106032
2022-02-18 23:21:21 -08:00
Bing Sun
ab4cfe87b0 qcacmn: Handle wmi event wmi_vdev_quiet_offload_eventid
Extract information from wmi event wmi_vdev_quiet_offload_eventid and
send it to mlme

Change-Id: I49ef7f2811c5975a95e8e33050977c49e2b104e4
CRs-Fixed: 3101974
2022-02-11 02:57:33 -08:00
Rahul Gusain
949beb6cad qcacmn: Send fils discovery template to wmi layer
Add support to send Fils discovery template via target if

Add func to compute shortssid with the help of shortssid table

Change-Id: I78fa50641ee5ae0c338719c4cec91573a212f396
CRs-Fixed: 3114903
2022-02-07 12:27:04 -08:00
Shashikala Prabhu
3090d55051 qcacmn: Compute the remaining max channel switch time
As per the spec,
"A STA affiliated with a non-AP MLD, that operates on Link2, transmits a
(Re)Association Request frame to AP2 requesting Link1 as one of the links
for multi-link setup. Since the (Re)Association Response frame is
transmitted by AP2 after the last Beacon frame on the initial operating
class/channel on Link1 and before the first beacon on the initial
operating class/channel is transmitted, AP2 includes the Max Channel
Switch Time element in the per-STA profile corresponding to AP1 in the
(Re)Association Response frame it transmits. The value carried in Max
Channel Switch Time element provides an estimate of time until the first
TBTT on the new channel on Link1."

Hence, calculate the remaining max channel switch time using the below
steps.

When host receives the CSA complete event with the CSA count 1, calculate
the Max channel switch time for each vdev by adding the below values,
	a) Host triggers the channel switch when CSA complete event is
	   received with the CSA count 0. The time difference between
	   CSA count 1 and CSA count 0 is one beacon interval. Hence, add
	   one beacon interval.
	b) Add the channel change time. The total time required to receive
	   CSA event handler from FW with CSA count 0, plus, the time required
	   to process the CSA complete event, plus, the time required to send
	   multi-vdev restart request for all the vdevs in the new channel and
	   send updated beacon template (only for non-DFS channel) is
	   approximately 1 second (added a few milliseconds as delta and
	   considered 16 AP vaps here).
	c) Add DFS CAC duration of the new channel if the new channel is DFS.
	d) Add one beacon interval time (time required to send the beacon on
	   the new channel after VDEV up).
	e) Store the sum of the above time values in max_chan_switch_time of
	   the vdev_mlme object.
	f) Save the current time when host receives CSA complete event with CSA
	   count as 1 in the last_bcn_ts_ms of the vdev_mlme object.

Calculate the remaining channels switch time using the below formula.
- Remaining channel switch time is equal to the time when the last beacon
  sent on the CSA triggered channel plus max channel switch time minus
  current time.

Reset the max channel switch time and the last beacon sent time after
sending the VDEV UP command to FW.

Change-Id: I7c03bfae5e159419a6c9462591aeb2d6c5b4fb87
CRs-Fixed: 3076245
2022-01-03 09:04:19 -08:00
Bapiraju Alla
76caeb9b44 qcacmn: Use target if component for VDEV manager response path
Currently, VDEV manager responses are using legacy path instead of
target_if, vdev_mgr and os_if components. As the driver implementation
is planned for converged model, legacy implementation will be moved to
the respective components.

To avoid rework, Use target_if, vdev_mgr and os_if components to process
the FW responses corresponding to the vdev manager.

Change-Id: I778f6de93481fc730383e8f8e1c604f173947d69
CRs-Fixed: 3093776
2021-12-23 00:54:35 -08:00
Bapiraju Alla
ca4b3fabf6 qcacmn: Add support to dynamic MAC address update
Currently, MAC address update is supported only when interface is down.
Because of this framework needs to issue interface down and interface
up to update the MAC address.

This is resulting in connection time increase when MAC address
randomization is enabled for every new connection.

To optimize the connection time, add support to update the MAC address
without bringing the interface to down state.

Change-Id: Ic3eff6a9571f885292021b2c178d26b0eace5042
CRs-Fixed: 3063475
2021-12-09 13:42:05 -08:00
Sridhar Selvaraj
04c1a548a5 qcacmn: Convert vdev set mlme enum id to wmi id
Currently when sending multi vdev set param from MLME
vdev set param id is not converted to wmi layer id
resulting in incorrect mlme param update in firmware
for mbss common vap params.

Convert vdev set mlme enum id to wmi layer id when
setting multi vdev param from MLME.

CRs-Fixed: 3039992
Change-Id: Ibaeb974729f1ae9c272e203d1288229aca74b803
2021-09-23 02:11:37 -07:00
Sridhar Selvaraj
c9c8ccb8cb qcacmn: Adding multi vdev set param WMI API
Adding multi vdev set param WMI API support to send
vdev param update for multiple VAPs.

Change-Id: I6f331d4179afa2b331abef9b857365c60c0a64b3
2021-08-17 20:19:00 -07:00
Alan Chen
75c2cf25ab qcacmn: Add debug log to print link vote id
Add debug log to print details about the link vote id.

Change-Id: I2e89a3d6f06a0f3ec38ea9e8345d854553dbe86d
CRs-Fixed: 2964961
2021-06-24 16:32:11 -07:00
Venkateswara Swamy Bandaru
38f2c1baf2 qcacmn: WMI changes for setting eht op
Add WMI support for setting eht op in vdev start wmi command.

Change-Id: I7eb0e7e5ace9d78dd060e207c3227d86c3882bee
CRs-Fixed: 2858003
2021-05-11 08:03:27 -07:00
Venkateswara Swamy Bandaru
77fb0e3ac1 qcacmn: Fix compilation error
Fix compilation error when WLAN_FEATURE_11BE is enabled.

Change-Id: I1f762f7f2e8c257d4b010a7eac6c888a08a1e7af
CRs-Fixed: 2939040
2021-05-06 06:23:51 -07:00
Venkateswara Swamy Bandaru
1ac1976b57 qcacmn: Vdev start changes for supporting 11be
Add support for setting ehtop on vdev start wmi command.

Change-Id: Ia710cfe082dafd6d36e232253fa2f5ba6d7512d3
CRs-Fixed: 2857805
2021-05-04 10:58:39 -07:00
Deeksha Gupta
21ce9cf146 qcacmn: Prevent link down for SAP on non DFS channel
In SAP on non DFS channel, there are double votes for PCIe
link down and later if there is PCIe link up, this counter
sends D3 WoW case instead of D0 WoW case to firmware.

To fix this, In vdev restart case, if SAP is on non DFS
channel and previously it was on DFS channel then vote
for PCIe link down and if SAP is on DFS channel and
previously it was on non DFS channel then vote for PCIe
link up. Also, the PCIe link down should be needed if
vdev stop response is for DFS channel.

Change-Id: I817ffceb482091b8d9c5441d80abb43b7d0f866b
CRs-Fixed: 2849706
2021-01-09 01:36:51 -08:00
Shashikala Prabhu
8c3705336e qcacmn: Add support to send FTM responder/initiator cmd to target
Add support to send FTM responder/initiator support to target.

Change-Id: I6649d90941a7448ff1901a3f1194d8d0620481cc
CRs-Fixed: 2781144
2020-12-21 20:55:11 -08:00
Sheenam Monga
0e8f8132c2 qcacmn: Handle CSA_SWITCH_COUNT_STATUS_EVENTID
Currently, host decrements beacon switch count and sends
channel switch frame every time until count becomes 0 this
may introduce sync issue between fw and host.

To avoid sync issue csa switch count is offloaded to fw. fw
will send CSA_SWITCH_COUNT_STATUS_EVENTID once beacon count
becomes 0 and  host will send vdev restart once it recives
CSA_SWITCH_COUNT_STATUS_EVENTID.

Change-Id: I60238e8e83b56ca4c6490f9516d673d14ef9c323
CRs-Fixed: 2831356
2020-12-08 09:21:37 -08:00
Shashikala Prabhu
fd0132aa9f qcacmn: Add CSA event handler and extract APIs
Move CSA event handler and CSA extract APIs to common code

Change-Id: Iedfa3bbd8a2b6d9cbfdd9fecd57052b853ed5680
CRs-Fixed: 2826991
2020-12-01 06:50:28 -08:00
Alok Singh
43932952ca qcacmn: Change return type to QDF_STATUS
wmi_unified_register_event return QDF_STATUS
Handle same return type in caller function

CRs-Fixed: 2764185
Change-Id: Icfa7946a447f3cfe8c6ce933a618e8dbb67bd6a0
2020-09-15 18:24:39 -07:00
Sandeep Puligilla
cb6735ac35 qcacmn: Release wakelock in response path
Release delete wakelock in delete response handler.
Release stop wakelock after sending the down command to
firmware so that it completes the disconnect sequence.

Change-Id: I0f47be04652178494d9cf0475af74ea573978005
CRs-Fixed: 2760116
2020-08-25 16:10:42 -07:00
Amruta Kulkarni
f9c5c541c1 qcacmn: Update the dfs api
To get the channel state for 5g bonded channel using the freq
use wlan_reg_get_5g_bonded_channel_state_for_freq.

Change-Id: I0b42e9c547ba70259e88137a5a26c238cd66da8d
CRs-Fixed: 2756463
2020-08-21 06:47:51 -07:00
Amruta Kulkarni
2f48b53345 qcacmn: Prevent link down for SAP on DFS channel
For SAP on DFS channel, the PCIe link down should be prevented
so that HalPhy can access DDR memory to report Radar found event.

Change-Id: I5eb1076196c509f0279781dbe3269d62132aeabc
CRs-Fixed: 2712800
2020-08-12 13:56:38 -07:00
Sandeep Puligilla
9c7c6259ca qcacmn: Enable VDEV response wakelock
Enable VDEV response converged wakelock logic.

Change-Id: I67917d5798d9279cb104d0e7ff2cbe26365658c1
CRs-Fixed: 2738667
2020-08-05 00:03:57 -07:00
Lincoln Tran
a86b23ee68 qcacmn: Update scheduler_msg callback type
This fixes a CFI failure in callback assignment.

Currently, the callbacks in scheduler_msg are void function
pointers. Update them to have a defined type as
scheduler_msg_process_fn_t to catch type mismatch during
compilation.

Other changes to conform to this new type include:
	1. Cast callback to qdf_mc_timer_callback_t when
	   referencing, and back when assigning
	2. Cast wlan_serialization_generic_timer_cb to
	   take fit into scheduler_msg
	3. Cast target_if_vdev_mgr_rsp_timer_cb to fit
	   into scheduler_msg

Change-Id: I052bc54826d377ae92f5bcc80ca08afb6f5e01e3
CRs-fixed: 2719975
2020-06-27 06:18:28 -07:00
Lincoln Tran
01b486c6a3 qcacmn: Revert target_if_vdev_mgr_rsp_timer_cb
Revert the change for target_if_vdev_mgr_rsp_timer_cb
from change I760b41b81c006187efb162d410390e1c11878b82.
The change introduced a CFI error because timer
callbacks do not expect a return status.

Change-Id: I7502493b08d1a8bdb847e2c47165880143a6d708
CRs-fixed: 2685628
2020-06-09 06:29:05 -07:00
Shashikala Prabhu
d6fbcdd4e7 qcacmn: Do not dereference the NULL rx_ops pointer
Do not dereference the NULL rx_ops pointer.

Change-Id: I999f3876801b61014aedb59402d2816627d0f28a
CRs-Fixed: 2702455
2020-06-08 10:30:32 -07:00
Neha Bisht
4bda764146 qcacmn: remove dependency of public files from wlan_objmgr_psoc_obj.h
Remove dependency of wlan_lmac_if_def headerfiles from
wlan_objmgr_psoc_obj.h

Change-Id: Ibe2f22c4b4f22b15eef201d1a42844ccf2931fef
2020-05-15 10:41:50 -07:00
Abhishek Singh
3b72c4bff0 qcacmn: Trigger recovery before sending failure resp for vdev cmd timeout
In target_if_vdev_mgr_rsp_timer_cb host send failure resp to vdev mgr
and then trigger recovery. Thus the next cmd can go to firmware before
recovery and this result in firmware states getting cleaned up and
this it's difficult to get the info from firmware for the timeout.

Thus trigger recovery before sending failure resp for vdev cmd timeout.

Change-Id: I645837e754750969744016f2da78c174308acfad
CRs-Fixed: 2665947
2020-04-17 13:20:00 -07:00
Rongjing Liao
a70123f9a2 qcacmn: add argument sanity check to avoid OOB
In function 'target_if_vdev_mgr_multi_vdev_restart_get_ref',
'param->num_vdevs' may have chance to hold values larger than
WLAN_UMAC_PDEV_MAX_VDEVS which will result in OOB
when access array 'vdev_list' and array 'vdev_timer_started'.

This change add sanity check for 'param->num_vdevs'to avoid
OOB.

Change-Id: Iae431fdc7006fe8c80d15d400d8a0423e9284eb7
CRs-Fixed: 2644122
2020-04-08 01:40:40 -07:00
Sourav Mohapatra
1929eefb7f qcacmn: Reset vdev_resp->timer_status to properly handle timers
The vdev_resp timer status is a persistent variable that is not reset
after a cycle of send/timeout is completed. This causes the old value to
induce faulty behavior for the next cycle.

For example in the case when vdev_start response is dropped, the timer
status is set to TIMEDOUT and this status remains as such for the next
time vdev_start response is received successfully. In this case, instead
of deleting the timer, as the status is a faulty TIMEOUT - no action is
taken. This causes the kernel to assert.

To resolve the above issue, reset the vdev_resp->timer_status after
stopping the timer.

Change-Id: I8632c117753a7bb1f041d00c4d9395163732f5d9
CRs-Fixed: 2654040
2020-04-02 12:44:56 -07:00
Bapiraju Alla
acf898a145 qcacmn: Fix return type for scheduler_msg callbacks
This fixes a CFI failure in callback assignment

Change-Id: I760b41b81c006187efb162d410390e1c11878b82
CRs-Fixed: 2643320
2020-04-01 12:40:45 -07:00
Naga
b805e1fa7b qcacmn: Remove redundant data structure for wmi response extraction
Remove redundant data structure at wmi for vdev delete
response extraction, instead use mlme host data structure.

Change-Id: Iedb4280fb47d6567bc4d7b663ecd6af5e769ddfc
CRs-Fixed: 2641197
2020-03-29 23:02:40 -07:00