Commit graph

7,204 commits

Author SHA1 Message Date
Venkata Sharath Chandra Manchala
d82dc29fe6 qcacmn: Fix skb overflow in wlan_pkt_stats_to_logger_thread
When wlan logging is turned on in developer options
wlan logging verbosity level is set to active and
pktlog buffer will also be passed to
wlan_pkt_stats_to_logger_thread. In this API we call
skb_put multiple times to copy ath_pktlog_hdr(16 bytes)
and pktlog buffer (2048 bytes) = 2064bytes  which is leading to
skb_over_panic as the skb length is set to 2048 bytes.
Increase the skb size to 2112 bytes which can accommodate
2048 bytes (pktlog buffer size)  + 16 bytes(ath_pktlog_hdr) +
8 bytes (pkt_dump) + 40 bytes (future use)  to avoid overflow.

Change-Id: Ia8bda14f45d2eb77357bf7e46a12c1062d56d8e1
CRs-Fixed: 2489338
2019-07-25 22:09:55 -07:00
sheenam monga
1b0ec2a8fe qcacmn: Add Support for ACTION_CATEGORY_FST
Currently, mgmt_txrx_get_action_frm_subtype does not handle
ACTION_CATEGORY_FST. In case action_category is
ACTION_CATEGORY_FST, mgmt_txrx_get_action_frm_subtype
returns MGMT_FRM_UNSPECIFIED due to default handling. Function
tgt_mgmt_txrx_rx_frame_handler returns QDF_STATUS_E_FAILURE
on receiving MGMT_FRM_UNSPECIFIED frame type and drops mgmt
frames.

Fix is to add support for ACTION_CATEGORY_FST in
mgmt_txrx_get_action_frm_subtype to avoid drop of FST mgmt
frames. Add new management frames
MGMT_ACTION_FST_SETUP_REQ, MGMT_ACTION_FST_SETUP_RSP,
MGMT_ACTION_FST_TEAR_DOWN, MGMT_ACTION_FST_ACK_REQ,
MGMT_ACTION_FST_ACK_RSP, MGMT_ACTION_FST_ON_CHANNEL_TUNNEL.
Add handling for ACTION_CATEGORY_FST in
mgmt_txrx_get_action_frm_subtype, Find fst frame subtype and
return fst frame subtype from mgmt_get_fst_action_subtype
instead of returning MGMT_FRM_UNSPECIFIED in case FST
action_category is received.

Change-Id: I67b7c14f03cab252b13b677a2c9f20a327be24bd
CRs-Fixed: 2495273
2019-07-25 20:12:10 -07:00
Sourav Mohapatra
f31c071fd5 qcacmn: Move peer_adv_stats to MC specific peer_mc_cp_stats struct
Currently peer_adv_stats is present in peer_cp_stats structure
which is shared between WIN and MCL and only common features
should be part of this structure as peer_cp_stats is an
abstraction structure for WIN and MCL for cp stats component.
Since peer_adv_stats is MCL specific structure, this should be
moved to peer_mc_cp_stats which is MCL specific feature for
cp stats component.

Change-Id: Id46cdd153aa6b8137c24fdca30365221d2646d3f
CRs-Fixed: 2480147
2019-07-25 12:25:21 -07:00
Surya Prakash Raajen
9a4f2c0ab3 qcacmn: Modify rssi_in_dbm's format specifier in print
Rssi_in_dbm has incorrect format specifier due to which
it returned large values,change it to correct specifier.

Change-Id: I06426e36b6abf5b915d039dfea8afd5d3aa06195
CRs-Fixed: 2490087
2019-07-25 11:03:24 -07:00
Surya Prakash Raajen
bdda144479 qcacmn: Add nav override config as wmi command
Add nav override config as wmi command

Change-Id: Ia21155a0d7c04d09589cc3df1006ec508a89ace7
CRs-Fixed: 2494915
2019-07-25 11:03:20 -07:00
nobelj
57055e5920 qcacmn: Fix ppdu stats for not displaying for mu users info
check framectrl instead of frametype.

Change-Id: Ifacef0f94db1c5f960bd298c0ace0f6ff1a2fead
2019-07-25 11:03:16 -07:00
Chaithanya Garrepalli
4a5189bbbf qcacmn: remove unused fields in dp_peer
Cleanup the unused fields in data path peer

Change-Id: I334389c5f08705df363a88e14db07a3d8e0eb16d
2019-07-25 05:09:24 -07:00
Pragaspathi Thilagaraj
6d8ef39a55 qcacmn: Remove copy_vdev_create_pdev_id under CONFIG_MCL
Use common definition for copy_vdev_create_pdev_id and remove
copy_vdev_create_pdev_id defined under CONFIG_MCL.

Change-Id: Ie8421d519970cae28f003b435aebabb5a935bebd
CRs-Fixed: 2492726
2019-07-25 02:41:05 -07:00
Paul Zhang
8cf0c34663 qcacmn: Remove CONFIG_MCL wlan_logging_sock_deinit_svc
This is to remove CONFIG_MCL wlan_logging_sock_deinit_svc.

Change-Id: I4e31bddb0fb2ac25c031dc05eec60e54032322de
CRs-Fixed: 2494078
2019-07-25 02:41:00 -07:00
Himanshu Batra
032d352263 qcacmn: Replace void * Host Target Communications handle with abstract type
Replace void * Host Target Communications handle with abstract type handles
provided by Host Target Communications component

Change-Id: I16ca87e4f9716791d340da2fda0a8a640fa2ec34
CRs-Fixed: 2487151
2019-07-25 00:25:49 -07:00
Kiran Venkatappa
115309a008 qcacmn: Delay monitor buffers replenish to monitor VAP create
Monitor buffer are required only when monitor VAP is created. Allocate
these buffers only when montior VAP is created. This provides memory
savings when no monitor VAP is created/required.

Change-Id: I3ddaef00615f00fd13adb2789469a62f1a0af165
CRs-Fixed: 2491873
2019-07-24 21:43:36 -07:00
Shashikala Prabhu
ae2a8a6d88 qcacmn: Fix compilation errors for mesh mode feature disable
Fix compilation errors for mesh mode feature disable.

Change-Id: I8dfb401791109099a84d9c40417afddc9be6c7c7
CRs-Fixed: 2495095
2019-07-24 21:43:32 -07:00
Ashish Kumar Dhanotiya
6e7d87df88 qcacmn: Disable ext scan in driver
Currently ext scan is enabled by default in driver which
is increasing driver size significantly and ext scan
is not getting used anymore.
Disable ext scan with feature flag CONFIG_FEATURE_WLAN_EXTSCAN
to reduce driver size and fix related compilation issue.

Change-Id: Id2344e6ed21caefa459773bb6e891ffb1e70cb92
CRs-Fixed: 2491455
2019-07-24 21:43:28 -07:00
Vevek Venkatesan
ad55b14e32 qcacmn: converge target type defines for both MCL and WIN
Converge definitions of target types for both MCL and WIN.

Change-Id: I501d39ff5989747ddd22b08cb390bb4601c5dd0b
CRs-Fixed: 2484512
2019-07-24 21:43:24 -07:00
Karunakar Dasineni
a46da42b53 qcacmn: Remove freed DP structures from minidump
Remove entries previously added to minidump during
data-path detach.

Change-Id: Ib69803e8ea58e5b4e0f045d3037730a5b6700c8d
2019-07-24 17:10:06 -07:00
Karunakar Dasineni
af64fd1868 qcacmn: QDF wrapper to remove minidump entries
As part of minidump support, add QDF wrapper to remove
previously added entries.

Change-Id: Iae5ed874d6dbd2f6701f174b54d839fb0a13989c
2019-07-24 17:10:02 -07:00
Naga
8d8b66b40d qcacmn: Fix bit value to stop target_if timer
Fix bit value to stop target_if timer when
start is attempted for same which is already
in execution.

Change-Id: I0d299719d865d92cd5515de4d0441dd215f0aecf
CRs-Fixed: 2494428
2019-07-24 17:09:58 -07:00
nobelj
2b861f8a49 qcacmn: fix setup tid for non QOS client
fix tid setup in null queue for packet comes in uninitialized tid.

Change-Id: I430e24f46a1782d0ddc3abebbbf32145573d6844
2019-07-24 17:09:54 -07:00
Vignesh Mohan
a1a1945c1c qcacmn: Configure agile preCAC timeout values
Send proper minimum and maximum agile preCAC timeout values to the target
as part of starting agile DFS detector. Add a common agile preCAC
parameter structure with the timeout values, channel and width fields
which are to be sent as part of configuring agile detector.

Change-Id: If5f5b179aa12a6c549cb9a4402aa10e957129d78
CRs-Fixed: 2482929
2019-07-23 13:55:29 -07:00
Shashikala Prabhu
41e5f80e2f qcacmn: Do not print DFS error message for 2.4 GHz pdev
For a 2.4 GHz pdev, dfs object is NULL and hence 'dfs is NULL' print is
in tgt_dfs_set_agile_precac_state().

To fix this, add non 5 GHz pdev check before dfs NULL check.

Change-Id: I32cf622d7b769ce841d30de538527639b87f459b
CRs-Fixed: 2490145
2019-07-23 13:55:25 -07:00
Shashikala Prabhu
0843438590 qcacmn: Use correct skb headroom size to update radiotap header
Size of rx_pkt_hdr tlv structure is used to check if there is enough
space in the SKB to add radiotap header.
The issue is seen due to a single SKB can hold the multiple TLVs and
the next subsequent SKB has the data. In this case, there is no headroom
available in the second SKB. Therefore crash seen while adding the
radiotap header in the second SKB.

To fix this issue, check if the SKB has enough headroom space. If not,
drop the frame.

Change-Id: Icd11f946c0aee974dde2ef21f59cfe3d8b87fa5d
CRs-Fixed: 2480719
2019-07-23 11:59:42 -07:00
Kai Chen
f76d6062ce qcacmn: work around on monitor buffer ring back pressure issue
destination ring MPDU processing is stuck because ppdu id is
not sync between monitor status ring and monitor destination ring.
Add logic to detect destination ring process stuck and jump over
destination ring stuck entry.

Change-Id: I17d9b5fba06a28239ec64d864ae7944ae04a7dae
2019-07-23 08:23:44 -07:00
Rakshith Suresh Patkar
d863f8d6b7 qcacmn: Add new API for registering rx mic error callback
Add new CDP API cdp_register_rx_mic_error_ind_handler to
register rx mic error callback. Also, define new structure
cdp_rx_mic_err_info for holding MIC error information.

Change-Id: I4d5d6426b1d5f04848afd48f6dbf51edba291a20
CRs-Fixed: 2488424
2019-07-22 11:36:23 -07:00
Mohit Khanna
7a200e764d qcacmn: Enable ENABLE_DP_HIST_STATS macro
This macro ENABLE_DP_HIST_STATS is needed for histogram information in
DP layer for both TX and RX. Add support for this macro.

Change-Id: Iffcb93c5e19d667bae35ce562c7ef12d063fb659
CRs-Fixed: 2492090
2019-07-21 16:56:38 -07:00
Abhiram Jogadenu
cede8ed032 qcacmn: Correct the error handling in event registration
wmi_oem_response_event_id is only defined for TLV based
architectures. Current code returns an error if registration to a
particular event fails. But registration failure is not wrong
for legacy architectures, as event is not defined.
So do not check return value for error

Change-Id: Ia54431cee2958b59166394360a3fc961abad85ce
CRs-Fixed: 2492494
2019-07-21 08:28:31 -07:00
Alok Kumar
9551ea2d0e qcacmn: Define tx_status enum in wlan_logging_sock_svc.h
Add the tx_status enum in wlan_logging_sock_svc.h so that
enum can be used for MGMT TX status mapping in wma_mgmt.c

Change-Id: I5681e6fcc39704b6be18bc68b1042e0e6b53f590
CRs-Fixed: 2491787
2019-07-20 02:32:43 -07:00
Santosh Anbu
f0a42162ac qcacmn: Add pdev mlme component attribute
With the addition of the pdev restart command to handle multivdev restart,
a placeholder is required at the mlme to hold pdev restart attribute.

Change-Id: I885bf71d0e7977452120714a659e839769ade33e
CRs-Fixed: 2492531
2019-07-20 00:36:44 -07:00
Ashish Kumar Dhanotiya
c3001e4291 qcacmn: Remove invalid log from cp stats
While processing stats event there is an invalid debug
log which is always getting printed and resulting in
confusing loging.
Remove this invalid log from the stats event handling.

Change-Id: I5c60bf73b6b01afce82ebf93e19254f6e302042f
CRs-Fixed: 2493076
2019-07-20 00:36:41 -07:00
Abhishek Ambure
6825cfe7fe qcacmn: Move rsp timer stop logic from tgt to target if
Currently vdev response start timer logic is in
target_if layer and stop timer logic is in tgt
layer which is asymmetry.

So, move stop timer logic from tgt layer to
target_if layer for vdev start, stop and delete.

Change-Id: Ia06e2e6d90cf9c4366d654e016e2eeab8c2a0719
CRs-Fixed: 2442199
2019-07-19 20:40:38 -07:00
nobelj
2a1312cd25 qcacmn: fix memory leak issue in tx mgmt ctrl payload tlv
fix memory leak issue in tx mgmt ctrl payload tlv.
if any of the mgmt or pkt capture feature is turned on.
htt_t2h_msg is hold in mgmt_buf and not set to NULL on free.
which cause leaking next target to host nbuf.

Change-Id: I0d9e0194e51a21b348aadf747b8c9def5c245eda
2019-07-19 19:10:08 -07:00
Manjunathappa Prakash
5f1b698282 qcacmn: Reduce excessive log and advance error processing
Reduce the excessive loging incase dup detect and advance rx processing
to handle next ring entry.

Change-Id: I1d6e8aa28045ed12dd6d315169483ca56d2c6972
CRs-Fixed: 2489205
2019-07-19 13:37:18 -07:00
Himanshu Batra
e596ea4cbf qcacmn: Replace objmgr void * members with union
Replace objmgr void * members with union of specific datatypes.

Change-Id: I3f9df2b00ca333ebcabdc1a87d1047ea205b0cdc
CRs-Fixed: 2477389
2019-07-19 11:26:07 -07:00
Himanshu Batra
cefe93ef3b qcacmn: Replace void * wmi_hdl with abstract type (7/10)
Replace void * wmi handle with abstract type handles
provided by wmi component.

Change-Id: I53d14cc548e0d9aae4de7db4dcf6f63ed2a74fe5
CRs-Fixed: 2482590
2019-07-19 11:26:03 -07:00
Yeshwanth Sriram Guntuka
4644ff4331 qcacmn: Use appropriate config to include wmi_unified file
Use CONFIG_WMI_BCN_OFFLOAD instead of CONFIG_MCL to
include wmi_unified header file.

Change-Id: I0cc7a4958700c82c7d3e55c965ccac2451b64fd3
CRs-Fixed: 2490681
2019-07-19 10:13:29 -07:00
Chaithanya Garrepalli
b8db1bd02b qcacmn: populate actual framelength for MGMTCTRL TLV
for HTT_PPDU_STATS_TX_MGMTCTRL_PAYLOAD_TLV get the length
from TLV data

Change-Id: I84526a36ebac5a267530d697a4fe51646d0c9cbd
2019-07-19 04:04:20 -07:00
Ankit Kumar
b5549d6468 qcacmn: Placed note section in commit desc
Remove note section from code comment and placed
in commit description for better readability.
Macro for sending data packets Changed from macro function
to static inline function due to error reported by
checkpatch for multiple use of same variable.

Change-Id: I0752cfff7502fabe0c2351a21a94cfac4625278f
CRs-Fixed: 2490594
2019-07-19 02:48:30 -07:00
gaurank kathpalia
18495feac0 qcacmn: Use proper macro instead of config_mcl
Use proper macro instead of config_mcl to compile
the API target_process_bang_radar_cmd.

Change-Id: I3a2fca998d69f2a29243b9ecd2a290af9602d6c2
CRs-Fixed: 2490649
2019-07-19 02:48:26 -07:00
Jinwei Chen
9d3f985a8d qcacmn: deliver RX data to stack evev if no peer found
Deliver RX data to stack even if no peer found, this is
needed for LFR roaming case like eapol data.

Change-Id: Ic81f29993fb4542847bd076042a13de6e9f18173
CRs-Fixed: 2468082
2019-07-19 02:48:23 -07:00
Himanshu Batra
556930bba9 qcacmn: Replace void * tgt_if_handle with abstract type
Replace void * tgt_if_handle of objmgr psoc/pdev with
abstract type handles provided by target interface

Change-Id: I9e0ae991776daa0c25c4ad7b4e4dc022441318a3
CRs-Fixed: 2482708
2019-07-19 02:48:20 -07:00
Ashish Kumar Dhanotiya
3863721077 qcacmn: Unlink hidden bss entry from kernel
Kernel maintains a list of bss and it adds/updates the bss
entries whenever driver informs it. When driver receives
beacon or probe response from any ap it informs kernel to
update the bss list and whenever it disconnects with the
AP driver unlink the bss in the kernel.

If the AP is hidden, when driver gets beacon from this
hidden AP it informs the kernel to update the bss list.
kernel add this entry to it's bss list with NULL SSID.
Now when driver receives probe response from this hidden
AP it again informs the kernel to update the bss list,
as this is probe response and ssid is not hidden,
kernel treats this entry as new entry and adds it to
its bss list and links this entry to the older hidden
AP entry (But still these are two entries for hidden AP).

When driver gets disconnect from the AP it unlink the
bss entry corresponding to this AP from kernel's bss
list, but since there are two entries for the same AP
as the AP is a hidden AP, driver should clear hidden AP
entry (Which was added as part of beacon) which is
not happening currently.
Now when AP moves from hidden to broadcasting SSID
in it's beacon, kernel drops this beacon entry as its
confusing because there is already a beacon entry with
hidden bss for this AP. During connection driver tries
to update the entry in the kernel and it fails as kernel
drops the beacon resulting into the connection failure.

To resolve this issue, whenever driver unlink the bss
entries from the kernel bss list unlink the hidden bss
entries also from the kernel's bss list.

Change-Id: I629475db8e8f10a6bc403314a984939e38d0a4da
CRs-Fixed: 2488955
2019-07-19 00:54:27 -07:00
Vignesh U
f00622162c qcacmn: MKK17 should include channel 144
As a part of regulatory update #29,MKK17 should support channels
until 5730MHz(including channel 144). But, it was missed in
regulatory update #29 and MKK17 supports channels only until
5710MHz(until channel 140).

Add channel 144 to MKK17.

Change-Id: Ic4b4c162f03a033b697764d65f4733b49e00c9c8
CRs-Fixed: 2489544
2019-07-19 00:54:23 -07:00
Alok Kumar
3558ddfc61 qcacmn: Remove the CONFIG_MCL for rx_reorder_queue_remove_cmd
On MCL side, crash_on_send_peer_rx_reorder_queue_remove_cmd
causes a crash if command is sent by host. Currently no one
is using this API from MCL side and for non MCL this is No-OP.

Removing this API and CONFIG_MCL as from MCL side no one is
calling this.

Change-Id: I5393074913ccd6b39ca2e31e081783c4b614bd43
CRs-Fixed: 2490819
2019-07-18 16:45:40 -07:00
Mahesh Kumar Kalikot Veetil
bde1772622 qcacmn: Enable ASPM for FTM mode
Modify hif_pci_enable_power_management() API to enable pci ASPM for
FTM mode.

CRs-Fixed: 2491213
Change-Id: Ia421ee2af9ae270f5138ac5b8ff52680fbfe9679
2019-07-18 14:23:13 -07:00
Himanshu Batra
39d27ed230 qcacmn: Replace void * wmi_hdl with abstract type (10/10)
Replace void * wmi handle with abstract type handles
provided by wmi component

Change-Id: Iaf3de67d4933998ac4540ac280d716d534777e7f
CRs-Fixed: 2482647
2019-07-18 14:23:10 -07:00
Himanshu Batra
213192233b qcacmn: Replace void * wmi_hdl with abstract type (8/10)
Replace void * wmi handle with abstract type handles
provided by wmi component

Change-Id: I96309658dd12964c74062418a2b32deb1e915c10
CRs-Fixed: 2482632
2019-07-18 14:23:07 -07:00
Himanshu Batra
0a35a6afb8 qcacmn: Replace void * wmi_hdl with abstract type (6/10)
Replace void * wmi handle with abstract type handles
provided by wmi component

Change-Id: I503438fbaf3bc2d475798bc908a70902d11881af
CRs-Fixed: 2482568
2019-07-18 14:23:04 -07:00
Bala Venkatesh
63b4f6a57e qcacmn: Remove MCL_CONFIG flag
In file wmi_unified.c use appropriate config
flags instead of MCL_CONFIG flag.

Change-Id: I9e43f8853ddd93221679cefa50b4f7b239d2abdb
CRs-Fixed: 2491383
2019-07-18 07:17:29 -07:00
Himanshu Batra
e6eeca68f3 qcacmn: Replace void * wmi_hdl with abstract type (5/10)
Replace void * wmi handle with abstract type handles
provided by wmi component.

Change-Id: Ic8d4ddc90c8e49a9629553debf6c09c7565fcd80
CRs-Fixed: 2475462
2019-07-18 03:46:01 -07:00
Himanshu Batra
453eea49a9 qcacmn: Replace void * wmi_hdl with abstract type (4/10)
Replace void * wmi handle with abstract type handles
provided by wmi component.

Change-Id: I4bb0f9fd921bf53d38dfb257818fee48c4516cd8
CRs-Fixed: 2475457
2019-07-18 03:45:58 -07:00
Himanshu Batra
6abe4bebd6 qcacmn: Replace void * wmi_hdl with abstract type (3/10)
Replace void * wmi handle with abstract type handles
provided by wmi component.

Change-Id: I04cd3ce5b4f36f7073d4644e2fd0d52da41e1af3
CRs-Fixed: 2475447
2019-07-18 01:07:26 -07:00