Commit Graph

4539 Commits

Author SHA1 Message Date
Kabilan Kannan
0cc70bc6ff qcacmn: Add magic string for memory leak debug
Add magic string in the driver to automate the
memory debug analysis.

Change-Id: I79b6ef49fa5c1c5fb74c72b228c3dae05b483a77
CRs-Fixed: 2212167
2018-04-02 19:39:40 -07:00
Kabilan Kannan
0cc3fc4ad8 qcacmn: Fix compilation warnings in TDLS
Fix the warning issue in TDLS, which popped up with newer
compiler options.

Change-Id: I1516a47ec01faa9315d2045ebcfe49097680e80d
CRs-Fixed: 2215517
2018-04-02 16:41:55 -07:00
Yuanyuan Liu
80bfeb949d qcacmn: Fix LLVM compiling issues
Remove typedef redefinition, use correct enum type, remove extra
parentheses and correct header guard.

CRs-Fixed: 2214003
Change-Id: I0a75c70cd530590a16f6bfa884955ebc26906de0
2018-04-02 16:41:52 -07:00
Tushnim Bhattacharyya
f940918d4f qcacmn: Use enum type policy_mgr_con_mode instead of enum QDF_OPMODE
Use enum type policy_mgr_con_mode instead of enum QDF_OPMODE.

Change-Id: Ia7a6bb5e05c6dac650dc6386734462547365a4eb
CRs-Fixed: 2214003
2018-04-02 16:41:50 -07:00
Tushnim Bhattacharyya
bf1e4f3f28 qcacmn: Use correct enum type in function call
Use correct enum type in tdls_determine_channel_opclass,
tdls_process_antenna_switch & tdls_process_send_mgmt_rsp.

Change-Id: Idd4e7ac47196e3e11971fe3013805b6a8551c8de
CRs-Fixed: 2214003
2018-04-02 16:41:47 -07:00
Abhishek Singh
dba772b9c8 qcacmn: Fix OCE WAN scoring logic for initial connection
Set the range of score index to 1-15 as 0 is used for the AP
which does not advertise the OCE WAN. Also if OCE WAN downlink
capability is 0 return 0 score.

Change-Id: I8c6757458c542050a6a31cb03fad0ce17d60aa16
CRs-Fixed: 2208282
2018-04-02 15:22:01 -07:00
Tiger Yu
054a6a4fd4 qcacmn: Initialize the local variable do_pm_get to false
Initialize the local variable do_pm_get to false to avoid using the
uninitialized variable potentially.

Change-Id: Ie45126b05afee1d4e5bb061189846bc8e301c2a6
CRs-fixed: 2215809
2018-04-02 15:21:59 -07:00
Kabilan Kannan
d6c4f2209c qcacmn: Validate nbuf in dp trace function
Validate nbuf before processing in dp trace function

Change-Id: Idb59f83edc09f9be8bf0bd231b8eb6ff28f37fd4
CRs-Fixed: 2213737
2018-04-02 15:21:57 -07:00
Chaithanya Garrepalli
0323f80221 qcacmn: Correct peer create-delete sequence
If peer with given MAC Address
already exists, just increment the refcnt
instead of allocating a new peer and deleting older
peer object. This avoids unnecessary memory fragmentation.

Change-Id: I76a3ffca4e907fccfdfd1b6857de721623f455d5
CRs-Fixed: 2209045
2018-04-02 15:21:55 -07:00
Anish Nataraj
cf526b7b9f qcacmn: Free memory for ppdu descriptor tlv list in detach path
ppdu tlvs are maintained in linked list and was not freed in detach
path but only freed after wdi post message. This was causing memory
leak to happen

Change-Id: I7b7b49d7ec829a6ef6b99edb1c7999bed713ae49
2018-04-02 03:09:00 -07:00
Venkata Sharath Chandra Manchala
bcfa6d8683 qcacmn: Add lock to protect rx_desc_pool
Create a lock for protecting rx descriptor
pool allocation during initialization and destroy it
during unloading the driver.

Change-Id: Icd489e400dab9bb648709134dcaa24c4d7724aa6
CRs-Fixed: 2215430
2018-04-01 21:02:38 -07:00
Sumedh Baikady
12b2b2c897 qcacmn: Use mon_lock while accessing monitor vap
Use monitor mode lock to prevent vap down while monitor
vap is still delivering all MPDUs to radiotap Api.

Change-Id: I908d8048afbf3210bddaafc2c19b177ec8209085
CRs-fixed: 2212004
2018-04-01 19:40:48 -07:00
Karunakar Dasineni
bef3b1b9b2 qcacmn: Disable batch intr for SW source rings
Source SRNG rings like RXDMA buffer rings only need low
threshold interrupts to ensure they are not empty. Disable
batch interrupts by setting batch count to 0.

Change-Id: I5de38caa1fccf162143d9598c0499dd8c5318391
2018-03-30 22:35:09 -07:00
Dustin Brown
44ece32672 qcacmn: Impl. qdf_print_thread_trace for non-ARM
qdf_print_thread_trace() depends on the kernel function
save_stack_trace_tsk() being exported. While ARM architectures export
this function in Kernel versions >=4.14, other architectures already
exported it. When compiling against non-ARM architectures, avoid
stubbing out qdf_print_thread_trace().

Change-Id: I139ea08479b44b59aef657a35125feeb0c011e2f
CRs-Fixed: 2215585
2018-03-30 14:48:22 -07:00
psimha
2bcdb546e5 qcacmn: Dump TLVs before freeing nbuf
Call dump packet TLVs API before freeing the nbuf containing the TLVs

Change-Id: I6d27de4d3331cbf7bd45d1d2b1ba5122f25b9f24
CRs-Fixed: 2213769
2018-03-30 13:30:48 -07:00
Soumya Bhat
dc8aca8501 qcacmn: Strip additional bytes from skb containing Rx payload
In existing code, the RX payload buffer for M-copy mode contained
RX MSDU payload followed by additional TLV data.

Add change to strip the skb and only provide MSDU payload

Change-Id: I9834fabfb0e26404a620d8419e7c570fff68f182
2018-03-30 06:31:18 -07:00
Venkateswara Swamy Bandaru
7fc11f76a3 qcacmn: Fix htt_included bit set for tx frames
Set htt_included bit for frames that have only valid htt header.

Change-Id: I481282c74ca7d247dece25aedf5f95f641260bda
CRs-Fixed: 2206348
2018-03-30 04:04:36 -07:00
jitiphil
3caf63aa26 qcacmn: Add NULL check for 'pl_dev'
Currently 'pl_dev' is dereferenced without check for NULL in
get_pktlog_handle function in pktlog_internal.c

To address this issue add NULL check before dereferencing

Change-Id: Ic258db7bf1b404ff4f2d6c18abe775335074268b
CRs-Fixed: 2196058
2018-03-30 02:46:51 -07:00
Edayilliam Jayadev
269c3deaac qcacmn: Fix for direct dma + ftm mode
This change fixes the null pointer dereference issues
observed when running spectral scan using direct dma
framework with ftm mode.

CRs-Fixed: 2214269
Change-Id: I06514b38b519da7eb972ff713feab97e7d5a9c29
2018-03-30 02:46:49 -07:00
Dustin Brown
37244642bf qcacmn: Featurize QDF_ASSERT
QDF_ASSERT is not properly featurized with its own build time config
flag. This leads to unnecessary logs and increased driver size for
platforms which do not want the feature enabled. Use the newly
introduced WLAN_WARN_ON_ASSERT build time flag to decide if QDF_ASSERT
should be a no-op.

Change-Id: I39e3ab6499210569b6ce09d77ee72f0081741989
CRs-Fixed: 2211983
2018-03-30 02:46:47 -07:00
Chaithanya Garrepalli
4c7099f001 qcacmn: Add lock for update ast entry
Add lock protection while update of ast entry for
peer

Change-Id: I0f61add9a06174303b40b017a6f1f2d202f3cf55
CRs-Fixed: 2210301
2018-03-30 02:46:44 -07:00
Aditya Sathish
61f7fa32c4 qcacmn: Fix Static Code Analysis Issues
Fixes static code analysis issues relating to null pointer
dereferencing and array bound issues.

Change-Id: I365277d9e690ca92351530f01162094ad2bca6ad
CRs-Fixed: 2208294
2018-03-29 22:30:33 -07:00
Vivek
71a0ad2500 qcacmn: API to get peer count per psoc
Implement API to get the number of peers
created within a psoc

Change-Id: I4cbb814d00b707355b77be807a462978e22d653a
CRs-Fixed: 2213331
2018-03-29 22:30:31 -07:00
Anish Nataraj
f12b0a3463 qcacmn: Update netdevice stats to reflect ifconfig counters
netdevice_stats structure tx/rx/drop/error counters are assigned
proper values

Change-Id: I8e123a810a02292339a34b54bfebe3a56ae99dbd
2018-03-29 20:14:03 -07:00
Anish Nataraj
0573462cb2 qcacmn: Aggregate peer rssi and rx rate stats
peer rssi and rx rate stats counters aggregated
to vdev/pdev level so that athstats shows proper values

Change-Id: I4d4a28006c30b1f2eba77bbeaddb9723626166db
2018-03-29 20:14:01 -07:00
Venkata krishna Sundararajan
471b552ca5 qcacmn: Add OS abstraction for NSEC_PER_MSEC
Currently code that is os-abstracted is referencing the
Linux-specific macro NSEC_PER_MSEC which violates the software
architecture. Introduce a new QDF macro to os-abstract this
Linux-specific macro.

CRs-Fixed: 2210748
Change-Id: I519773f2fd2a7227a285cf3832a758005a0f3900
2018-03-29 18:57:34 -07:00
Venkata krishna Sundararajan
e456cb8400 qcacmn: Add qdf wrapper for ktime, hrtimer related APIs
Add qdf wrapper for ktime, hrtimer related functions
and abstracts in qdf layer. The  wifi driver use the
qdf wrappers for the above APIs.

ktime APIs:
=========
ktime_to_ms
ktime_set
ktime_to_ns
ktime_add_ns
ktime_get
ktime_add
ns_to_ktime

hrtimer APIs:
=====
hrtimer_forward
hrtimer_active
hrtimer_callback_running
hrtimer_cancel
hrtimer_is_queued
hrtimer_get_remaining
tasklet_hrtimer_init
tasklet_hrtimer_cancel

CRs-Fixed: 2138717
Change-Id: Ic4655d6b342f2121a5acc9b1c6bda7aabd154f8f
2018-03-29 18:57:32 -07:00
Sandeep Puligilla
87bcfb4b86 qcacmn: Deprecate enum wmi_dwelltime_adaptive_mode
Deprecate enum wmi_dwelltime_adaptive_mode and use enum
scan_dwelltime_adaptive_mode defined in scan component.

Change-Id: I9c33b852172d9208fb8440c6dc71a12aefd717da
CRs-Fixed: 2213074
2018-03-29 18:57:29 -07:00
Kiran Venkatappa
99556ec2cc qcacmn: WMI interface changes to configure TWT
Add WMI interface changes required to configure TWT

Change-Id: I307f65f8049caf8365fb496fd69f91600ddbd832
CRs-Fixed: 2212556
2018-03-29 13:16:14 -07:00
Srinivas Pitla
6c56b09a43 qcacmn: Define list iterate API without ref count protection
In few cases, ref count mechanism is not able to protect access of
all objects, and if ref count is taken without considering object state,
it is causing double free. so, defined an API which protects list through
locks and accesses all objects.

As the current ref count increment API do not check for ref count value to
increment. This is causing object being accessed and ref count taken during
physical destroy leads to double free on releasing ref count

Change-Id: Iff140c581984bf660a48c2b927c4ac2933afa822
CRs-Fixed: 2200871
2018-03-29 06:57:57 -07:00
Edayilliam Jayadev
2703fafbe2 qcacmn: Use new phymode for vht in 2G
Today for VHT in 2G, we are sending WMI_HOST_MODE_11NG_HT20/40
as phymode values to FW. Change this to WMI_HOST_MODE_11AC_VHT40/20_2G
which are dedicated phymodes defined for VHT operation in 2G.
This change is applicable only for tlv based chipsets.

CRs-Fixed: 2205265
Change-Id: I9482bfd1834285a21b5a45b6c039a13e9cd80479
2018-03-29 06:57:55 -07:00
Jeff Johnson
b311d8e273 qcacmn: Remove WLAN_SER_CMD_SCAN_IDLE_SCAN
enum WLAN_SER_CMD_SCAN_IDLE_SCAN is unused, so remove it.

Change-Id: I32acf848448ab3a739099e7446cd82c401aa11c9
CRs-Fixed: 2212931
2018-03-28 20:01:49 -07:00
Gurumoorthi Gnanasambandhan
8387311409 qcacmn: Handle invalid peer after deauth
Receiving HAL_RXDMA_ERR_UNENCRYPTED instead
of REO null desc exception for invalid peer.
Handle invalid peer in HAL_RXDMA_ERR_UNENCRYPTED
path also.

Change-Id: Ibb01ab7f23648bca15c86553ec53afa5fb181ad6
2018-03-28 20:01:46 -07:00
Gyanranjan Hazarika
2c57b8d8ee qcacmn: WMI support to set autorate HE GI LTF combinations
WMI_VDEV_PARAM_AUTORATE_MISC_CFG is introduced to set
HE GI LTF combinations in case of autorate adaptation.
Add support for the same in host side wmi files.

Change-Id: Idf567d771539b17e669ddab8b85092e3cbf9d3c8
CRs-fixed: 2204393
2018-03-28 20:01:44 -07:00
Will Huang
fb82d53055 qcacmn: Add pdev NULL check in reg_set_country
reg_set_country may be called by hdd_reg_notifier, which is running
in a context of worker create outside driver, it may be scheduled to
run during driver unloading process which set hdd_ctx->hdd_pdev to 0.

Change-Id: Ie51d772294302ad6b04117847c28a556694e9bca
CRs-Fixed: 2208085
2018-03-28 14:44:39 -07:00
Alok Kumar
f1d9fe23cf qcacmn: Enable support for Tx OTA Ack stats
Retrieve Tx OTA stats through cdp api.

Change-Id: I4bff475e4f3364fef181b4c52022a145a879a4c4
CRs-Fixed: 2211900
2018-03-28 14:44:37 -07:00
wadesong
87f18a3869 qcacmn: Suppress the verbose log from policy mgr
When DBS is disabled in WLAN INI file(e.g. on some platforms
where RM chipset is attached), the policy manager will keep
posting a verbose message saying 'DBS is disabled from ini'.
This isn't exhibiting much useful information, and may cause
watchdog bark when SnS stress is running.

Suppress the verbose log by lowering it's debug level.

Change-Id: Ie8d5a1784940f483cc671da43f734851c0b5adb6
CRs-Fixed: 2214201
2018-03-28 14:44:34 -07:00
Sandeep Puligilla
e062e82352 qcacmn: Never ageout connected AP scan entry
Connected AP scan entry is aged out if beacon
is not recieved within scan age out time.

Update mlme information of the connected AP/BSSID
scan entry so that scan age out hanlder will not
age it out even though the last beacon recieved
time is greater than the configured scan age out value.

Change-Id: I14c68c28459080623ca62c0bad9052e38d7fb348
CRs-Fixed: 2183379
2018-03-28 06:26:51 -07:00
Chaithanya Garrepalli
8e5e2f86c4 qcacmn: Fix for the rx_desc leak
In dp_rx_get_free_desc_list() corrected the
return value in case when the number of requested
rx_desc are not available in the pool

Change-Id: I3de026726e885b8fe707f7c7318cc1936be73e65
CRs-Fixed: 2202247
2018-03-28 06:26:42 -07:00
Vivek
24f704eefc qcacmn: Explicit cast for boundary checks for unsigned cfg items
The meta table containing the min and max values for
any cfg item is of type int32_t. This is used to do boundary
checks for unsigned int cfg items whose max:
possible value will be higher.

Type cast the signed int min, max meta data to unsigned int
before we do the boundary checks.

Change-Id: I18a3047a3afa78864c76b813ca93f5b82f2274a7
CRs-Fixed: 2213359
2018-03-28 02:13:57 -07:00
Srinivas Pitla
9578a90c65 qcacmn: Acquire pdev lock on updating pdev peer count
The pdev peer count needs to be updated with pdev lock, as multiple peers
can be created same time, which can result in synchronization issues
without lock

Change-Id: Ic8164585873f32a801dd9a334f861d6666b9864f
CRs-Fixed: 2203011
2018-03-27 17:33:39 -07:00
Shashikala Prabhu
ae49c692cd qcacmn: Set half/quarter rate flags in the scan channel list
Set half/quarter rate flags in the scan channel list and send it to FW.

Change-Id: Ia63a1f360337bdb4ba054892c0c3dfe773b97f11
CRs-Fixed: 2212700
2018-03-27 13:53:13 -07:00
Dustin Brown
8949120a26 qcacmn: Avoid QDF_BUG logs when panic is disabled
QDF_BUG panics the system when an assertion fails and PANIC_ON_BUG is
enabled in the build config. It also prints an error message regardless
of if PANIC_ON_BUG is enabled or not. However, these prints are not of
much value when situations where PANIC_ON_BUG is disabled. When
PANIC_ON_BUG is disabled, avoid printing any logs.

Change-Id: I456ebce4d45d533d512402cd37d22e4ba1ae2cde
CRs-Fixed: 2211960
2018-03-27 13:53:10 -07:00
Prathyusha Guduri
668c22c96b qcacmn: Fix BW mapping on host and add Tx nss stat
Stats counters for BW were not printed correctly due to difference in
mapping of BW on host and FW.

Also added Tx NSS stats during aggregate vdev stats

Change-Id: I348a5f9f974544ffe17ba403cd64769eff05c9b5
CRs-Fixed: 2203582
2018-03-27 05:47:40 -07:00
Bala Venkatesh
2438a563c5 qcacmn: Add ENABLE_DBS_CXN_AND_DISABLE_DBS_SCAN
Add ENABLE_DBS_CXN_AND_DISABLE_DBS_SCAN option for the ini
gDualMacFeatureDisable. To enable DBS support for the
connection and disable DBS support for the scan.

Change-Id: I05c613467195fffac98e79b7e4a2991471ac1d80
CRs-Fixed: 2207820
2018-03-27 00:25:38 -07:00
Paul Zhang
b10508a903 qcacmn: Add regulatory update-25 to reg db
Add Regdomains: ETSI12, ETSI13, FCC5
Add Regdomain pairs: ETSI12_WORLD, ETSI13_WORLD
Change all Europe countries to ETSI13_World in the
LA country-to-RD mapping.

Change-Id: I4fb31fbd852994c6bcda5e6379de2f3df5aa8d4e
CRs-Fixed: 2182451
2018-03-26 22:10:43 -07:00
psimha
65180eceac qcacmn: Fix SW desc leak in defrag path
Free SW desc in failure paths of rx defragmentation.

Change-Id: I9d24c0db238cab0e330c710b6328a347b6c07590
CRs-Fixed: 2208292
2018-03-26 18:55:33 -07:00
Mahesh Kumar Kalikot Veetil
fe276b3bc7 qcacmn: Fix qdf_get_monotonic_boottime_ns()
Fix the API implementation to account for time spent in system
suspend. This matches with API qdf_get_monotonic_boottime()
implementation.

Change-Id: I4bf8980bfc4500c035e8de7df4d8a18dfc6775ae
CRs-Fixed: 2211953
2018-03-26 16:32:28 -07:00
Om Prakash Tripathi
581297b4d9 qcacmn: Fix null pointer dereference in scan
Make sure passed pointer is non null before accessing it.

Change-Id: I62fd051f13265070954d1e6ae7d9e9ea7efe3ba3
CRs-Fixed: 2212629
2018-03-26 16:32:26 -07:00
Vivek
2b109825ac qcacmn: Replace A_UINT with appropriate types
There are instances of use of older A_UINT/A_INT.
Replace all such instances with the qdf u_int*_t/int*_t.

Change-Id: I7ce29b03f29a0d1a0cf87cfd3c846f4694da4c2a
CR's-Fixed: 2210869
2018-03-26 04:58:12 -07:00