Граф коммитов

6358 Коммитов

Автор SHA1 Сообщение Дата
Anirban Sirkhell
0f2677d572 qcacmn: Fix possible NULL pointer dereference
In son_ol_send_null(), check for the return value of
GET_WMI_HDL_FROM_PSOC() before using it.

Also, pass argument of type wmi_unified_t in calls
to wmi_unified_stats_request_send().

Change-Id: Idfedae2fcbde6d18b1829adefcabac0adbc55859
CRs-Fixed: 2371368
2019-02-07 04:58:01 -08:00
Srinivas Pitla
604e249bc1 qcacmn: Limit channel compare to num, sec freq2
In current code, full channel pointer is compared.
From testing, it is found that FW can handle different modes on
same frequency, so limiting the check to channel number and sec freq2

Change-Id: Iafb43c911937ee8ae6ebb7d15887a30e6dd43679
CRs-Fixed: 2393554
2019-02-07 00:13:15 -08:00
Karunakar Dasineni
159434989a qcacmn: Fix a corner case in monitor duplicate WAR
Store last link descriptor for duplicate detection while
skipping invalid MPDUs.

Change-Id: I8ce35c1854875adca6ce59391e302a6fc6d3e28d
2019-02-06 21:51:56 -08:00
gaurank kathpalia
b170fa8000 qcacmn: Reject scan after a max number of scans are received
Currently the driver enques any number of scans it receives
from the NL, or vendor scan path, which can lead to lower
throughputs of the connected profile ( any vdev ), as
antennas would be used by the MAC for scanning, and if
the number of scans are too much, this will lead to a
bad user experience.

Fix is to have a max check of number of scans, and then only
enque a particular scan request.

Change-Id: Iacdb1294ff5e7e20cd30dd328c6ea2b6f7899cda
CRs-Fixed: 2392883
2019-02-06 17:12:55 -08:00
gaurank kathpalia
0affa64a1c qcacmn: Add debug RL log in cfg layer
Add debug RL log in cfg layer to rate limit the
excess logs.

Change-Id: If4d18bfa45bb4011172896488de168950a14db67
CRs-Fixed: 2392876
2019-02-06 17:12:52 -08:00
Shiva Sankar Gajula
9d76260ac9 qcacmn: Fix the KW issue by increasing Max cipher types by 1
Increase the max cipher types by 1 to access WLAN_CRYPTO_CIPHER_NONE
crypto ops.

Change-Id: I7bfa7e9df73dfe7f8836880bfa0e3934e05f0522
2019-02-06 17:12:49 -08:00
Jianmin Zhu
860380d062 qcacmn: Remove CONFIG_MCL in pktlog
Since WIN are not using this code at the moment, just remove
CONFIG_MCL directly.

Change-Id: Iff35f533f4f32a6d8b22aea5f890ec4d935fc88c
CRs-Fixed: 2388751
2019-02-06 14:39:22 -08:00
hqu
c8470c8010 qcacmn: Fix NULL pointer dereference in extract_hal_reg_cap_tlv
In extract_hal_reg_cap_tlv(), field hal_reg_capabilities of
param_buf may be NULL, when access field wireless_modes of
hal_reg_capabilities, it will result in a NULL pointer access.

Fix is to add NULL pointer check for field hal_reg_capabilities
of param_buf.

Change-Id: Ie2a50ce1f06f9623cc771d4d580cb5f9f25cc5d4
CRs-Fixed: 2387212
2019-02-06 11:16:34 -08:00
Abhishek Singh
cd0a9fdcd8 qcacmn: Move scan req modification logic to scan core to ucfg
Move the scan req modification logic to scan core from ucfg layer.

Change-Id: I92d7bc6ed41761fd6cd4a602ab3c5852e8121dd8
CRs-Fixed: 2393496
2019-02-06 11:16:31 -08:00
Pragaspathi Thilagaraj
9d9a3c492c qcacmn: Refactor scan related ini items
Refactor the following scan related ini items to scan module:
CFG_ENABLE_MAC_ADDR_SPOOFING - ini to enable/disable scan mac
randomization
CFG_SCAN_AGING_TIME - configure scan entries aging time.

Previously these values are populated in hdd and passed to
scan module through ucfg_scan_update_user_config() function.
With new cfg infra, the scan module can directly get these
values from cfg component.

Change-Id: I0dcbd8253ae46387dd44e68c86f0622f279ba501
CRs-Fixed: 2378985
2019-02-05 18:01:22 -08:00
Dustin Brown
8f1ded29ed qcacmn: Apply timer multiplier to qdf_timer
The qdf_timer_multiplier is currently applied to qdf_mc_timer and
qdf_event. In addition to these cases, also apply qdf_timer_multiplier
to qdf_timer to enable more debugging scenarios.

Change-Id: Ie3bd340dd2e8f1bec7e5bfa7ec3f0d0ceaa32e6d
CRs-Fixed: 2393017
2019-02-05 13:37:58 -08:00
Abhinav Kumar
a151be66dd qcacmn: Add diag events for debugging
Currently there are no diag events to inform user space about
algo num, Tx Seq num and status code of auth req.

Add such diag events which can be useful in automation.

Change-Id: I0fb698b62a114c867113a89aa67f9778b80de118
CRs-Fixed: 2331702
2019-02-05 11:09:48 -08:00
Tallapragada Kalyan
bb2077926f qcacmn: Fix for an array oob issue in hal_reo_cmd_set_descr_addr
Fix for an array out of bounds issue in
hal_reo_cmd_set_descr_addr

Change-Id: Idf7fe71ab1ec9dddbe9ec2b6b7bdb8f477294ee9
CRs-Fixed: 2365505
2019-02-05 08:51:49 -08:00
Chaithanya Garrepalli
8fb487704b qcacmn: add sync between peer teardown and add ast
Protect peer delete in progress under lock to avoid
addition of AST entry after peer tear down

Change-Id: I21ec1dde67339406ad1b5ac99d37b6ce8d021fde
CRs-fixed: 2384110
2019-02-05 06:29:59 -08:00
Naga
71b2748ffc qcacmn: Cleanup vdev mgmt related structures in WMI
Cleanup WMI to use new data structures in vdev mlme
for corresponding vdev mgmt op

Change-Id: I0126dcb34e569aac2af82de15e0f3362cf5a0a5e
CRs-Fixed: 2383346
2019-02-05 06:29:56 -08:00
Naga
ba29b56cd6 qcacmn: Add MLME Tx & Rx Ops for vdev mgmt ops
Add Tx & Rx callbacks in LMAC structure and
the same will be (de)initialized through psoc
disable and enable from init_deinit component

Change-Id: I346c9076f0966545fb779dc150f5d6498c793308
CRs-Fixed: 2383346
2019-02-05 06:29:52 -08:00
Naga
f3a70cea4e qcacmn: Add target_if/mlme/vdev_mgr for vdev mgmt ops
Add target_if/mlme/vdev_mgr to handle vdev
mgmt related ops inorder to send corresponding
requests to WMI and processing response events
and Tx callbacks are introduced in MLME LMAC
Tx Ops structure which are initialized from
target_if main.

Change-Id: I9d02b17fdb04757d7dc523dd41e409c0fb1e5edf
CRs-Fixed: 2383346
2019-02-05 06:29:48 -08:00
Naga
916a4b1e96 qcacmn: Add mlme/vdev_mgr support for vdev mgmt ops
Add support in mlme vdev_mgr to update
data structures corresponding to vdev mgmt
ops as expected by WMI and send the same to
target_if/mlme/vdev_mgr for sending to WMI.

Core MLME data structures in wlan_vdev_mlme.h
will be updated through provided ucfg APIs
which are used in updated vdev mgmt ops
data structures.

Change-Id: Ic6fc03bcb817c9f2f2724a9591b76656840903ba
CRs-Fixed: 2383346
2019-02-05 06:29:43 -08:00
Surya Prakash
1f0930190b qcacmn: Clear compilation warnings
Clear compilation warnings for wmi files which
has unsued functions in case of some macros
aren't defined.

Change-Id: If3a9ee68206a44e35f459e3c39d9da2d6f7ba4ba
2019-02-05 04:02:24 -08:00
Edayilliam Jayadev
d4b7e3b572 qcacmn: Populate spectral capability and send via cfg80211
Populate Spectral capability structure with scaling parameters
from extended service ready event parameters. Send the spectral caps
via cf80211 interface.

CRs-Fixed: 2379652
Change-Id: Id0372bdd40843c2101df32d2e71920027a24909f
2019-02-05 04:02:20 -08:00
Edayilliam Jayadev
ac0ddecb36 qcacmn: Get Spectral bin scaling params
Extended service ready event has a tlv
containing the spectral bin scaling parameters.
Populate the spectral capabilities using this info.

CRs-Fixed: 2379652
Change-Id: I0b4648302e7170b5965cf1aec68638e70cd36e73
2019-02-05 04:02:17 -08:00
Surya Prakash
27fba324b4 qcacmn: Enhance debug message for wmi
Print endpoint ID, soc ID, target type and transmission
queue depth when queued wmi commands reaches max wmi queue size.

Change-Id: Ia781f3a2c964651d5fdb8cb54ab975021cd11566
CRs-Fixed: 2360714
2019-02-05 04:02:13 -08:00
gaurank kathpalia
f49f17ea85 qcacmn: Use the peer mac address array instead of structure
Currently the driver uses structure for peer mac address
to store the mac address.

Use the already existing peer mac address array for the same.

Change-Id: Ib49b2ac4747fce3610da73a1d29c67ccaaeaad65
CRs-Fixed: 2390282
2019-02-05 01:39:09 -08:00
Sandeep Puligilla
da4a452492 qcacmn: Fix MBSSID scan IE parse failure
Failed to generate Non-Tx BSS scan entry due
to corrupted non-tx beacon IE.

Fix the sequence of fields need to be copied to generate
the new non-tx scan entry.

Change-Id: I6ed8773fb0efe6193c954f4963c364b9d8bf1960
CRs-Fixed: 2386423
2019-02-04 17:52:31 -08:00
hqu
c783c07b93 qcacmn: Fix possible OOB read in extract_mac_phy_cap_service_ready_ext_tlv
In extract_mac_phy_cap_service_ready_ext() the field num_hw_modes
of hw_caps is used as loop bounds and may be attacked.

hw_mode_caps is a pointer defined by firmware. The exact array
length cannot be got since hw_mode_caps pointing array length
is variable. Fix is to add check for field num_hw_modes of hw_caps.

Change-Id: Ie234db3f2356186a4e7aac121ec88dd7e6453efd
CRs-Fixed: 2387221
2019-02-04 17:52:28 -08:00
gaurank kathpalia
c81b9a3b34 qcacmn: Filter out invalid BSSID from rx MGMT frame
Currently the driver accepts zero BSSID obtained from the
beacon/probe response and also allows to connect to them
by creating a peer, but since connection doesn't go
forward with the peer as BSSID is zero, the driver
deletes the peer, but since the BSSID is zero, the
host doesnt sends the peer delete to FW, which causes
a peer leak.

Fix is to filter out the beacons which has invalid BSSID,
and try to recreate the address from the addr2 which is
the FROM address in the MAC address. In case of AP the
BSSID and FROM address would be same, and hence BSSID
can be copied from the same.

Change-Id: I75842c2d80254aaffc31e689782be2eebc118466
CRs-Fixed: 2391346
2019-02-04 15:36:49 -08:00
Vivek
332df1206f qcacmn: Change log level of a debug message
Add change to decrease the log level from error to debug

Change-Id: Ic07a0dd083e6bd112a7d45af5397330ce4f29890
CRs-Fixed: 2391733
2019-02-04 15:36:45 -08:00
nobelj
fdfe7ea3cf qcacmn: Fix memory leak in rx tid setup
Take care to handle failure case resource leakage
in TID setup.

Change-Id: I83fbe2c5edcf0c7554d8e64eba8987fbc15502c2
2019-02-04 13:08:07 -08:00
Krunal Soni
53add6504b qcacmn: WAR to drop MPDU with incorrect sw_peer_id
In certain scenarios where AP sends OFDMA TCP packet to
multiple STAs in HE80 mode in poor RSSI conditions, it has been
observed that host in STA gets in to null_q_descr handling case and
rxtlv doesn't carry correct sw_peer_id. Due to this,
driver can't find correct peer from table and ends up sending deauth
frame to handle invalid peer case. The TA is valid and host is able to
find the peer using the TA.

Apply workaround by detecting this special case and drop the frame.

CRs-Fixed: 2367420
Change-Id: I0cbdbb8e9976e739c959062261fc1c946e446d63
2019-02-04 13:08:03 -08:00
Nachiket Kukade
e2c9a74022 qcacmn: Combine all NAN related flags with WLAN_FEATURE_NAN
Flag WLAN_FEATURE_NAN_CONVERGENCE was added to protect the
converged NAN code inside NAN Component. Since the original
NAN Discovery related code has now been moved inside NAN
component, keeping this flag separate doesn't make sense.

Combine this flag with WLAN_FEATURE_NAN flag which is the
original NAN feature flag.

Change-Id: I0045dcccd36524cbcd4253347c9e0a5704193c2b
CRs-Fixed: 2377393
2019-02-04 10:44:44 -08:00
nobelj
9d8154dcd3 qcacmn: update TID to skb priority
update TID to skb priority before checking process_rx_status.

Change-Id: Ic81666e3cf918f6d089c43ae8234cd7a06fd0ccc
2019-02-04 07:28:30 -08:00
Krunal Soni
98092294a4 qcacmn: Add unified WMI support for WLM stats
The TLV WMI added support for a new WMI_SERVICE_WLM_STATS_REQUEST
service along with an associated WMI_WLM_STATS_EVENTID event, so add
support for a proxy unified WMI service and event.

Change-Id: Ic79c4b757fe2d4e806306750250e3c102745c486
CRs-Fixed: 2388911
2019-02-04 01:50:15 -08:00
Ashish Kumar Dhanotiya
3be335ca19 qcacmn: Avoid compilation issue with kernel 4.19
There is a compilation issue if a variable is passed to
kernel api DECLARE_HASHTABLE.
TO resolve this issue, instead of passing a variable
pass a constant to DECLARE_HASHTABLE.

Change-Id: Ie9782af541bb34cc50f79060b0007dc73881e5f4
CRs-Fixed: 2386893
2019-02-02 15:27:57 -08:00
Ashish Kumar Dhanotiya
ad85c38928 qcacmn: Update driver timer APIs according to kernel 4.19
There are some changes to timer APIs in latest kernel,
update driver APIs accordingly to invoke correct kernel
APIs for timer functionalities.

Change-Id: Ie017c8b1ef8237ca34f696c23509519a1187167c
CRs-fixed: 2383574
2019-02-02 15:27:54 -08:00
Santosh Anbu
0a46a191fa qcacmn: Add change to export symbol
Export the symbol as it is used across multiple modules

Change-Id: I7dd70bd0cf48b2f24cc10de7fd2e4bdd6bd938c6
CRs-Fixed: 2391939
2019-02-02 08:18:45 -08:00
Sourav Mohapatra
6066636527 qcacmn: Fix kernel 4.15 timer list dependencies
With the changes made in Ibe0f8adc4df7bb98aceb509d438e241fac507393 and
Ic4cef0d6301230197443d4d5247188f2af643674 there are compilation issues
with converged code.

Resolve the issues by creating ifdefs for the timer_list definitions
according to kernel version.

Change-Id: Id9c29413ca0d21533a0afae245595051fa3a400f
CRs-Fixed: 2390884
2019-02-01 20:12:03 -08:00
Dustin Brown
8acb74ae9a qcacmn: Add >=4.15 kernel support to qdf_timer
The various setup_*_timer() APIs were removed from the linux kernel in
4.15, and replaced with similar timer_setup_*() APIs. Add conditional
compilation to qdf_timer to use the correct APIs depending on the
version of the kernel being compiled against.

Change-Id: Ibe0f8adc4df7bb98aceb509d438e241fac507393
CRs-Fixed: 2388570
2019-02-01 20:12:00 -08:00
Dustin Brown
bf8e81ef4c qcacmn: Do not directly alias 'struct timer_list'
There are a number of places where the kernel's timer_list type has been
used in conjunction with qdf_timer APIs. To prevent reintroduction of
similar issues in the future, do not directly alias qdf_timer_t to
timer_list.

See also: I410b7fafad18be01141008b6220fbe34ab07601e

Change-Id: Ic4cef0d6301230197443d4d5247188f2af643674
CRs-Fixed: 2388595
2019-02-01 20:11:57 -08:00
Dustin Brown
340c627dcf qcacmn: Remove os_timer_t
os_timer_t is a legacy wrapper around the kernel's timer_list type, and
is incorrectly used directly with qdf_timer APIs. Remove os_timer_t,
replacing instances with qdf_timer_t instead.

Change-Id: I410b7fafad18be01141008b6220fbe34ab07601e
CRs-Fixed: 2388575
2019-02-01 20:11:54 -08:00
Srinivas Pitla
f491953edb qcacmn: Print readable states, event in SM history
This change prints state, event names while printing SM history

Change-Id: I41a9ea429441255380ac6624952a8eff9fdcbc17
CRs-Fixed: 2390042
2019-02-01 12:44:13 -08:00
Edayilliam Jayadev
2bee1aa8ad qcacmn: Add unregister API for direct buf ring
Add Unregister API to de-register and free resources in direct buf
module. Existing logic of freeing all resources as part of pdev destroy
does not take care of soc_start and soc_stop scenarios. Add this API to
enable modules to de-register as part of soc_stop and register during
start.

CRs-Fixed: 2385313
Change-Id: Ibe6f6bc5f4bd2acc5a9fe71eee09c151853073bc
2019-02-01 10:33:51 -08:00
Jingxiang Ge
eb26aa78ae qcacmn: Clean CONFIG_MCL for log_to_console/assert_on_excessive_logging
The aim is to remove CONFIG_MCL or CONFIG_WIN from
cmn component.

This change takes care log_to_console and
assert_on_excessive_logging.

Change-Id: I365f5156a2825a11c279b931b9191cf5c470e943
CRs-Fixed: 2359042
2019-02-01 05:54:38 -08:00
Nandha Kishore Easwaran
1d17599f43 qcacmn: Call qwrap_config_enable from ext_handler
Call qwrap_config enable from both ready and extended service ready
handler. This change is needed for lithium chipsets where the number
of radios per soc is more than 1. Number of radios is updated only
in extended service ready handler and this qwraP_config_enable should
be called in extended service ready

Change-Id: I12289c38996f3bb4274e5795d434dd86c83f34c0
CRs-Fixed: 2384604
2019-02-01 03:42:34 -08:00
Ashish Kumar Dhanotiya
d163a896ef qcacmn: Avoid variable size array
There are couple of instances in driver where variable sized arrays
are getting used which are giving compilation issues on kernel-4.19.

To resolve this issue, replace static array with dynamic memory
allocation.

Change-Id: Idb12386265d03db5c857039b692a82ccdf227836
CRs-fixed: 2386880
2019-01-31 19:58:42 -08:00
Venkata Sharath Chandra Manchala
368fb3aff9 qcacmn: Reduce the log level for fragmented packets
Reduce log level from info to debug level for
received fragmented packets in dp_rx_defrag path.

Change-Id: I0d1c7bf91e0337a56ea9e52565e0cbdf47a1772d
CRs-Fixed: 2385483
2019-01-31 19:58:39 -08:00
Yuanyuan Liu
4c21f53aa9 qcacmn: move over to new explicit reset API
Move over to new explicit reset API as the old calls are removed
in kernel msm-4.19.

CRs-Fixed: 2386317
Change-Id: I4d550fc19970baa8e1c90ed170beb995cb850706
2019-01-31 17:30:17 -08:00
Sandhya Mahadevan
091c291f38 qcacmn: Fixing misleading indentation warnings
To fix misleading indentation warnings caused
due to gcc upgrade.

Change-Id: I807552011a49d7d132476f0ebf0fa50593a15c7e
2019-01-31 07:51:45 -08:00
Balamurugan Mahalingam
2a400f75d8 qcacmn: Fix compilation issue while enabling kernel IOMMU config
pld header files come from a different path for WIN case. Include
the WIN pld header files path to INCS.

Change-Id: If84398944b0102024a6230ba8873f25178396c87
2019-01-31 07:51:41 -08:00
gaurank kathpalia
94ac668ff6 qcacmn: Disable simultaneous scan based on ini
Currently the driver allows simultaneous scan irrespective
of the dual mac feature ini config, which can cause
connect latency.

Fix is to disable the simultaneous scan if the dual
mac config ini is configured to disable DBS scan.

Change-Id: I332284880c04955a8ae2ff19eae10313f240d9ae
CRs-Fixed: 2385027
2019-01-31 00:08:17 -08:00
Sravan Kumar Kairam
deb899b182 qcacmn: Fix implicit conversion error
Fix implicit conversion from enum type QDF_STATUS to
different enum type A_STATUS.

Change-Id: I549c9284e18d73685e879c2f0bb8c54330a35bda
CRs-Fixed: 2389838
2019-01-30 21:46:28 -08:00