Commit Graph

4411 次程式碼提交

作者 SHA1 備註 提交日期
Tallapragada Kalyan
7a47aac367 qcacmn: Remove AST entry from previous peer ast_list for ast update
Remove ast entry from the previous peer ast_list and add it to the
new peer ast_list when ast_update is called

Change-Id: Ic6e628ec2c225e6743d042fe3f3e227cb1864a3c
2018-03-14 09:57:13 -07:00
Santosh Anbu
0a580a3840 qcacmn: Set mpdu data_ptr only for the right buffer length
Handle mpdu data pointer for PMF frames based on EXT IV bit only
if the buffer length requirement is met

Change-Id: I0243105846b1cffc43b87cdcb84c265b216e2e5a
CRs-Fixed: 2202912
2018-03-14 08:27:09 -07:00
jinweic chen
e87355474f qcacmn: fix monitor nbuf double unmap when rmmod
When reaping rx monitor msdu in dp_rx_mon_mpdu_pop, if msdu_ppdu_id >
ppdu_id, then the corresbonding dp_rx_desc will not be added to free list,
and in_use flag still is 1 but it has done nbuf unmap which linked
to this rx desc. meantime, if rmmod triggered then it will go through the
rx desc pool and unmap the linked nbuf that in_use flag is 1, panic
happened. add unmapped flag checking to avoid double unmap.

CRs-fixed: 2201071

Change-Id: Idead32b189f513897deebf646b72585b257151c2
2018-03-13 19:49:13 -07:00
Jeff Johnson
3a7fda4ab0 qcacmn: Remove DPU signatures from TDLS Add STA Response
The ucast_sig and bcast_sig fields in struct tdls_add_sta_rsp date
back to a previous version of the driver that used these signatures to
synchronize the data plane with the control plane. However the current
version of the driver does not use these parameters, so remove them as
the final stage of the plan to completely remove these signatures from
throughout the driver.

Since the converged struct tdls_add_sta_rsp must exactly match the
legacy tSirTdlsAddStaRsp data structure, this change is co-dependent
with the qcacld-3.0 change:
  qcacld-3.0: Remove DPU signatures from TDLS Add STA Response
  Change-Id: I765b090fc5dbe9bdaf83b05a72223c0a12f71a18

Change-Id: I7750fac9e4870d75358606bea427a5dbab97c665
CRs-Fixed: 2200973
2018-03-13 18:41:57 -07:00
Ruchi, Agrawal
d536f88dda qcacmn: Add correct peer macaddr entry for son
Adding correct peer mac addr for HM_WDS son to avoid
target assert

Change-Id: I3c8ecbf46e336997597893c5093e7de698a61182
CRs-Fixed: 2195984
2018-03-13 11:05:37 -07:00
jinweic chen
c3546321b6 qcacmn: add nbuf map result check when replenish
add the nbuf map result checking when replenish rx
nbuf to monitor status ring, this could avoid the
case nbuf map failed and invalid dma address
posted to HW or do unmap for unmapped nbuf.

Change-Id: I45cfc015f71a2d7295f7fcb4803bd6e68e2752d4
CRs-Fixed: 2182546
2018-03-13 06:00:59 -07:00
Vinay Adella
af08a97d27 qcacmn: Add support for vdev level mgmt drain
Change the pdev mgmt drain to vdev mgmt drain.
The pdev drain function drains packets of all vdevs, which causes
an issue with backlog queues maintained for each vdev.
vdev level drain will help to support per-vdev queues that are
maintained out side the qcacmn module.

Change-Id: I78c58e8e12299eb7754f171f2c70291068871b03
CRs-Fixed: 2197254
2018-03-12 22:00:48 -07:00
Dustin Brown
c8e2987f93 qcacmn: Reduce SCHEDULER_CORE_MAX_MESSAGES to 1000
After profiling many iterations of several driver operations, the
observed absolute maximum number of queue scheduler messages was 452
during soft AP startup. Typical maximums for this test case are less
than 100, occasionally getting as high as 250. The median for all of
the driver operations in general were in the range of 1-2. Given this
information, a round number around twice the worst case rate was
picked.

Reduce SCHEDULER_CORE_MAX_MESSAGES to 1000, down from 8000 for MCL.
This saves a significant amount of unused statically allocated memory.

Change-Id: I6ef65db84ca524cea68afbc3bb49347c6d996992
CRs-Fixed: 2202692
2018-03-12 22:00:46 -07:00
Venkata Sharath Chandra Manchala
0ad4fdafb1 qcacmn: Disable TLV for PKTLOG LITE
Disable HTT_PPDU_STATS_TX_MGMTCTRL_PAYLOAD_TLV for Pktlog
Tx path for MCL only as it is currently a requirement
for WIN to keep it enabled.

Change-Id: If162384783139613f1bdad1d3820288a7887286d
CRs-Fixed: 2182626
2018-03-12 21:12:11 -07:00
Paul Zhang
1ac430d086 qcacmn: Reset the master_list[].chan_flags
Currently, the chan_flags in master_list does not reset.
So when changing the country code, the previous counry
code's chan flag will pollute the current country code's.

Change-Id: Idb7bbb2a216a8d756ddcfd2edb090807f098fadf
CRs-Fixed: 2199920
2018-03-12 17:16:47 -07:00
Rajeev Kumar
e7ba79c970 qcacmn: Remove obsolete struct target_resource_config
In WMI struct target_resource_config is obsolete and outdated.
Correct resource config struct is target_resource_config hence
remove the obsolete and outdated struct target_resource_config.

Change-Id: I23aeb46854008dabad4ece953c6eb2c151bedac0
CRs-Fixed: 2202520
2018-03-12 17:16:44 -07:00
Jeff Johnson
6d906fa7ab qcacmn: Remove obsolete TDLS signature
Change "qcacmn: Remove obsolete TDLS peer callback interface"
(Change-Id I32bb1f633b1dd1514aa6e4c3fdea044b3bca0009) removed the
obsolete logic that utilized the TDLS signature field, so remove all
remaining traces of it.

Change-Id: I731c81a0b1f7e5d885cfa18a551ad0d3af3cecbe
CRs-Fixed: 2200972
2018-03-12 15:57:45 -07:00
Jeff Johnson
0e2f7657a2 qcacmn: Remove obsolete TDLS peer callback interface
Change "qcacmn: Introduce new versions of TDLS peer callbacks"
(Change-Id Id4ea23266b0f3e1480b645c5afce6c17585ccb46) introduced a new
interface which removed an unused parameter and changed obsolete
naming.

Subsequently change "qcacld-3.0: Use new TDLS peer callback interface"
(Change-Id: I5c4684ac0a62f314da26f92ece2c9a9874d63634 in project
qcacld-3.0) updated the only registrant to use the new interface. Now
that the old interface is no longer being used, remove it.

Change-Id: I32bb1f633b1dd1514aa6e4c3fdea044b3bca0009
CRs-Fixed: 2200971
2018-03-12 15:57:43 -07:00
Rajeev Kumar
e7abced1a1 qcacmn: Register fw down legacy callback with QDF
Register fw down legacy callback with QDF such that new UMAC
components can call QDF API to check if fw is down or not.

Change-Id: I8d68cb7625fd75aa90ba09adfe13955c5418b54f
CRs-Fixed: 2202605
2018-03-12 15:06:24 -07:00
Anish Nataraj
b9e7d01e52 qcacmn: Add linked list logic to store per ppdu descriptor status tlv
Add linked list logic to hold all ppdu descriptor status in a list till
all TLVs have been processed
This design handles asynchronous arrival of tlvs from fw per ppdu

Change-Id: Ib8943d7c826c0b441f58f0eaba7ae0bdc0539d9a
2018-03-12 14:14:06 -07:00
jitiphil
301a242a31 qcacmn: Fix potential buffer overflow dp_rx_defrag_waitlist_flush
Currently variable "tid" is from message, which is used
directly as array size which causes buffer over-write.

To address this issue add check for the array size.

Change-Id: I61ffaef69d97936774d89ee4e745ab509d77adb5
CRs-Fixed: 2200862
2018-03-12 11:40:35 -07:00
Jeff Johnson
3051831c3e qcacmn: Introduce new versions of TDLS peer callbacks
The parameters to function typedef tdls_register_tl_peer_callback()
currently includes ucastsig.  This "unicast signature" parameter dates
back to a previous version of the driver that used signatures to
synchronize the data plane with the control plane. However the current
version of the driver does not use this mechanism, so there is a
desire to remove this parameter from the callback.

In addition both typedef tdls_register_tl_peer_callback() and typedef
tdls_deregister_tl_peer_callback() suffer from poor naming since the
"_tl_" in the names refers to a datapath component that was present in
an older version of the driver but which is no longer present.

Therefore introduce a new version of these typedefs with better naming
and which removes the ucastsig parameter.

Use temporary conditional compilation to allow support for both the
old and new interfaces until such time as all registrants have
converted to the new interfaces. This is part of the plan to
completely remove the obsolete unicast and broadcast signatures from
throughout the driver.

Change-Id: Id4ea23266b0f3e1480b645c5afce6c17585ccb46
CRs-Fixed: 2200931
2018-03-12 09:35:32 -07:00
phadiman
a2f544f294 qcacmn: Fix incorrect return type & variable access
Initialize the unintialized variables, fix return
types and fix typo errors (access map_status instead
of status)

CRs Fixed: 2200034

Change-Id: I02c5f989f1c41da07eabd165c3f45a44007b928d
2018-03-12 05:15:23 -07:00
Nirav Shah
d9dce6e18c qcacmn: [HIF] Add support for QCA9379 on x86 platform
Add support for QCA9379 chip on x86 platform for
USB and SDIO attach.

Change-Id: I1192e47f6ca186bbcaa6d1fb28d40cb16d6dfe0b
CRs-Fixed: 2181012
2018-03-12 04:15:00 -07:00
Abhijit Pradhan
93caac752f qcacmn: Fix DFS NOL KW issues
Initialize the timer object to zero before using it.

Change-Id: I54ccb203bc096a382f670738e7e3f18d2aa69c8e
CRs-Fixed: 2202873
2018-03-09 16:31:13 -08:00
Srinivas Pitla
ceae543cff qcacmn: Change object manager trace level to ERROR
Change object manager trace level to ERROR, move few
debug prints to obj_mgr_warn

Change-Id: Idc8943badb524c52694df18b035c9fc91c097e3a
CRs-Fixed: 2195292
2018-03-09 16:31:11 -08:00
Dustin Brown
3149adf58a qcacmn: Migrate scheduler logging functions
Part of the scheduler component has been migrated to the new sched_*
logging wrappers, but part of it still remains to be ported. Finish
migrating all of the scheduler logging APIs.

Change-Id: I5065d849a1523d6c27d6c6a27b1ad4605036c3e6
CRs-Fixed: 2201038
2018-03-09 13:39:51 -08:00
Subrat Mishra
2a06b23e82 qcacmn: Change ATF default trace level
Change ATF module default trace level from NONE to ERROR

Change-Id: I7dc47968db72329ffc99f466f0db51110ac02d64
CRs-Fixed: 2201834
2018-03-09 09:35:50 -08:00
Pratik Gandhi
7846150f2b qcacmn: Fix compilation issues for FW header abstraction
fwhdr_abstrct: Fix compilation issues for WIN firmware header abstraction.

Change-Id: Id76a6f29fd41ae559cf377029428224d59bd03fb
CRs-Fixed: 2140921
2018-03-09 07:28:50 -08:00
Soumya Bhat
2f54de20b0 qcacmn: Enable promiscuous mode for M-copy feature
In existing code M-copy feature was designed to provide
first 100bytes of payload of self BSS packets.

Add change to enable promiscusous mode and provide metadata and
100bytes of payload of all the packets received by the radio.

Change-Id: I5b1f168028a4fba3a24e9d2ccd0d68c246661d76
2018-03-09 02:03:10 -08:00
Dustin Brown
1723d45ad2 qcacmn: Don't inline QDF_DEBUG_PANIC for debug builds
Calling panic can cause a compiler to assume any subsequent code is
unreachable. Because these panics may or may not be enabled by the
build configuration, this can cause developers some pain. Consider:

	bool bit;

	if (ptr)
		bit = ptr->returns_bool();
	else
		panic();

	// do stuff with @bit

	return bit;

In this case, @bit is potentially uninitialized when we return!
However, the compiler can correctly assume this case is impossible when
PANIC_ON_BUG is enabled. Because developers typically enable this
feature, the "maybe uninitialized" warning will not be emitted, and the
issue remains uncaught until someone tries to make a build without
PANIC_ON_BUG.

A simple workaround, is to put the definition of QDF_DEBUG_PANIC in
another compilation unit, which prevents the compiler from assuming
subsequent code is unreachable. For CONFIG_SLUB_DEBUG, do this to
catch issues earlier. Otherwise, use the typical inlined approach.

Change-Id: I8901fd33781ccb8229fad16343a5b08d97cdcf68
CRs-Fixed: 2202527
2018-03-09 00:10:40 -08:00
Arif Hussain
c5da01ead0 qcacmn: Implement extract_comb/single_phyerr for tlv
Implement extract_comb_phyerr and extract_single_phyerr for tlv.

Change-Id: Id65809cdd05f11e39d8f5a88a3f47632e9a92b04
CRs-Fixed: 2196835
2018-03-08 22:06:14 -08:00
Venkata Sharath Chandra Manchala
ac863c4b4d qcacmn: Set the pdev mask based on channel id
Set pdev mask in HTT extension stats msg based
on channel id information.

Change-Id: I7c971494049e16ae8e0eb694984857346c3a38b7
CRs-Fixed: 2185219
2018-03-08 22:06:11 -08:00
Pamidipati, Vijay
ef2cbc6c93 qcacmn: Change default DSCP-TID mapping table to use all TIDs
Change default DSCP-TID mapping table so that all possible TID
values can be used in transmit datapath.
Also propagate a fix from legacy Tx classification code required
to compute the offset of L3 header pointer correctly

Change-Id: Ia6426817410e67018491c0f4a8122bfae7a1cfe2
CRs-Fixed: 2197640
2018-03-08 18:47:19 -08:00
Rachit Kankane
1bc1149747 qcacmn: Add HTC Credit History Feature flag
Add compilation flag to compile out HTC credit History
feature cleanly from the cld-3.2 driver binary

Change-Id: I615f0e4d6de150924b99b3444cebf00571ddc088
CRs-Fixed: 2190546
2018-03-08 18:47:17 -08:00
Nandha Kishore Easwaran
56c28c0cd1 qcacmn: Assign lmac id on tx packet enqueue
On napier AX, HK2.0 ast search is tied to lmac_id.
This ast search feature is added to support DBDC repeater usecase.
Assign lmac id 3 to search by default on all macs until more
formal per pdev changes are made. This enables 2g.

Change-Id: Ia06d9243bddd3f4943426d6b0de3f452a252d819
CRs-fixed: 2198431
2018-03-08 18:47:14 -08:00
Himanshu Agarwal
cfcb8b4de0 qcacmn: Add NULL check for wmi_hdl before use
GET_WMI_HDL_FROM_PDEV() returns wmi_hdl to the caller of the
func. In some Green AP functions, wmi_hdl is passed directly
to WMI functions without any NULL check that could lead to
NULL pointer dereference.

Add NULL check for wmi_hdl before use in Green AP functions.

Change-Id: Id6222ce30d66b660008c1a4ad1b5020235d5b351
CRs-Fixed: 2196071
2018-03-08 18:47:11 -08:00
Will Huang
cdee9f80d2 qcacmn: Free ROC context if p2p_scan_abort failed
It is possible that call p2p_scan_abort fail while cleanup roc queue,
because vdev already been destroyed when unloading driver. In this case,
even the scan complete event will be discarded, so ROC context include
ROC timer has no chance to free.

Free ROC context include ROC timer in p2p_scan_abort failure path and
set cancel_roc_done event to avoid unneeded waiting while unloading.

CRs-Fixed: 2187778
Change-Id: I43751dca0c480e811c15de35ee28bc9426ac3764
2018-03-08 18:47:09 -08:00
Soumya Bhat
f204aa825e qcacmn: Allocate heap memory instead of stack for print buffers
Existing code is allocating array of 500 bytes and providing it
to snprintf to store formatted array. This might lead to stack
overflow.

Add change to allocate memory from heap instead, in all such instance.

Change-Id: Ifaecebd60346d8a04c5facf3d1d446b420eb8c54
2018-03-08 18:47:05 -08:00
Yun Park
47e6af8c98 qcacmn: Don't set up second Rx refill ring for WIN
Set up second Rx refill ring only when IPA offload is enabled.

Change-Id: Icc8c4e2eb42dced3ae9293f33b6446b14093da0f
CRs-Fixed: 2160070
2018-03-07 17:28:59 -08:00
Arif Hussain
77ba8f42ca qcacmn: Fix possible null pointer de-references in DFS
Add null check to avoid null pointer de-references.

Change-Id: I3d6f6b182669ae4925ed85be2403bb0c18faeff5
CRs-Fixed: 2196070
2018-03-07 16:28:07 -08:00
Arif Hussain
c713727406 qcacmn: Fix possible null pointer de-references in FTM
Add null check to avoid null pointer de-references.

Change-Id: I99d01e5f543cffdace8aa07f709265f0eb5d7ed9
CRs-Fixed: 2196070
2018-03-07 16:28:04 -08:00
Sravan Kumar Kairam
03e69b3098 qcacmn: Translate QDF pending status to Linux error
Translate QDF pending status to Linux error in progress
code.

Change-Id: I3a8d9d17cb4b72cdfbb6d1f1c5adecd1679fe816
CRs-Fixed: 2200900
2018-03-07 16:28:02 -08:00
Nirav Shah
0d0cce8057 qcacmn: Featurize EPPING Feature
Featurize EPPING Feature to compile
out in mission mode.

Change-Id: Iecbab88961034a5e5d2ab73b5b577e52cdb17873
CRs-Fixed: 2198847
2018-03-07 03:55:50 -08:00
Poddar, Siddarth
697449805e qcacmn: Add new attibutes to NUD vendor subcommand
Add new attributes to vendor subcmd
QCA_NL80211_VENDOR_SUBCMD_NUD_STATS_SET.
This carry the requisite information to
start / stop the connectivity stats collection.

CRs-Fixed: 2168412
Change-Id: Ie8a60754780433f40ed4d103b737c5e8d4e59c28
2018-03-07 03:55:48 -08:00
Poddar, Siddarth
a9172bf24d qcacmn: Add APIs to get data packets info
Add APIs to get TCP syn/syn-ack/ack packets,
TCP src/dst port, DNS domain name/query/response,
ICMPv4 req/res, and ICMPv4 src/tgt ip information.

Change-Id: I1e4e92997a33e64fe2e4ae28a05b54b6ba5e8cff
CRs-Fixed: 2168412
2018-03-07 03:55:46 -08:00
Poddar, Siddarth
a7bed4f56d qcacmn: Extend wmi interface command to support other connectivity stats
Extend wmi interface command to support other
connectivity check stats(ICMPv4 and tcp).

Change-Id: I881aaeab6e3e1f36b7153630b87a07019660d896
CRs-Fixed: 2168412
2018-03-07 03:55:37 -08:00
Rachit Kankane
c50c2280ff qcacmn: Compile out WMI logging feature
Fix to compile cleanly when WMI_INTERFACE_EVENT_LOGGING
feature is disabled.

Change-Id: I1c7d687e685b8b2dcdb35667c425afc3d09c73da
CRs-Fixed: 2192125
2018-03-06 23:45:19 -08:00
Tushnim Bhattacharyya
8ede0d39ac qcacmn: Remove redundant DBS HW mode request
Remove redundant DBS HW mode request from
pm_next_action_two_connection_dbs_2x2_table. For 2x2 DBS HW even for first
connection if it is on 2.4G, DBS will get requested. Hence no need to
request again for second connection on the other band.

Change-Id: I17db8de5ed7a60f556cc8eeed59bbbfe0d63e795
CRs-Fixed: 2199420
2018-03-06 20:10:15 -08:00
Rajeev Kumar
83953b769c qcacmn: Change return type of fw down callback from void to bool
Change the signature of QDF FW down callback API to return bool
instead of void. Return type true indicates fw is down and return
type false indicates fw is not down.

Change-Id: I2be6f14e5fbdb7b24ccd604244e1314a8f127291
CRs-Fixed: 2196217
2018-03-06 20:10:14 -08:00
Yeshwanth Sriram Guntuka
64de344cd7 qcacmn: Add vendor command to get HW mode info
Add vendor command that provides the current
information of WLAN hardware MAC and its
associated WLAN netdev interfaces.

Change-Id: I70ffbdf44ddc45fe606d0ad6e69f1b284cffc6fe
CRs-Fixed: 2194757
2018-03-06 19:11:48 -08:00
Shiva Krishna Pittala
a143f83a27 qcacmn: Add Netlink deinit functionality in Spectral
Define os_if_spectral_netlink_deinit to close the Spectral socket and
de-register the os_if callbacks

Change-Id: I3d054c2a2d630d4d959861d3620592010d04c09a
CRs-Fixed: 2186113
2018-03-06 03:53:47 -08:00
Rajeev Kumar Sirasanagandla
448e07a99e qcacmn: Fix integer underflow and buffer over-read in fwlog
Currently, there is no check of:
1) Firmware event parameters in dbglog_parse_debug_logs(), which can
result in integer underflow.
2) Number of dbg log args against the total length, which can result in
buffer over-read.

To fix this, compare size of firmware event parameters and number of
dbg log args with total buffer length.

Change-Id: I7fbc684ec9e80cfc66220755a1ad6b9394194735
CRs-Fixed: 2197246
2018-03-06 03:53:44 -08:00
Abhishek Singh
deeaf6e9b2 qcacmn: Add logic to negotiate the auth and enc type depending on AP
In testbed sta mode the RSNE enc type and auth type may not match the
AP's enc type and auth type and thus the scan filter is unable to match
and find the AP.

Introduce auth and enc type as "ANY" in scan filter. With the auth
and enc type set as ANY, all the AP's matching the BSSID and SSID
will be filtered and the negotiated auth and enc type will be
dependent on AP's auth and enc type.

Change-Id: I82f07f68d9ec6c6f2104122a05d06a698c61a50a
CRs-Fixed: 2197222
2018-03-06 01:51:30 -08:00
gaurank kathpalia
1e6e00f350 qcacmn: Remove 11ax IE length checks
With IE length sanity check, that involved by Change-Id I9a091486,
11ax AP cant be found due to the addition of +1 byte in HE-operation
IE in latest spec of 11ax (D2.2).

Remove all 11ax extended capability IE length checks for now due to
11ax being under development.

Change-Id: I45d676325c72c8e0020ca52d094fb1652f8fcaf2
CRs-Fixed: 2197252
2018-03-05 23:33:35 -08:00