A race condition has been observed between outgoing TX traffic and
peer deletion when DUT has concurrent SAP(DBS) and STA sessions in 5G
and 2G respectively and the peer connected to SAP moves away triggering
peer deletion at DUT. Due to peer being deleted, the vdev corresponding
to the peer is void which results in a crash in ol_tx_data function
while trying to send Tx data.
Fix crash by checking for a null vdev in ol_tx_data.
CRs-Fixed: 1012681
Change-Id: Id0aab4b1f03ed24dfb55e09fa1a115edfdfcce84
Free body pointer of messages pending in deferred
queue during driver unload to avoid memory leak.
Change-Id: I73e0e3f675728aa653c2c4f5d2291c260b339987
CRs-Fixed: 1003001
qcacld-2.0 to qcacld-3.0 propagation.
Dynamically allocate hdd_txrx_hist to reduce size
of HDD context and avoid order 4 memory allocation
from kernel.
Change-Id: I04dd8f3cdb7f401fb761262bd34b0a2177f6097f
CRs-Fixed: 950790
qcacld-2.0 to qcacld-3.0 propagation.
Do not allocate single large chunk of memory for rx hash
to avoid memory allocation failure. This change uses array
of pointers to reduce single large chunck of allocation.
Change-Id: I2aa7239be924b63c87f1044a74176a101d952108
CRs-Fixed: 954302
Add logic to calculate pause and unpause time for
network queues to debug data path issues.
Change-Id: I825b10837d999384a91ca3c2271e472a71fd8863
CRs-Fixed: 999861
Add histogram for MSDUs per HTT RX indication
message and update drop counters in RX path.
Change-Id: Ia861f6cd3d6a91f01a07f9bc4e2bc3afcf62c8f2
CRs-Fixed: 999861
Add target bus type field in qdf context, as bus type
needs to accessed at multiple layer.
Change-Id: I62b23d68743fedf205bb3859c0de50568ca09b7a
CRs-Fixed: 1009993
Add support to enable WISA feature using QCA_NL80211_VENDOR_SUBCMD_WISA
and do scan blocking on WISA mode interface.
Change-Id: Ief105310fb71779b1a8c1d580408a489cad9977e
CRs-fixed: 997798
1) Store the last roam synch delay incurred for the most
latest roaming instance.
2) Provide an ioctl "iwpriv wlan0 hostroamdelay" to fetch
the delay
CRs-Fixed: 1012891
Change-Id: Ibbfb8d17e68dcd84ca645ec3bccf25fd84acaa18
Remove csr_neighbor_roam_offload_update_preauth_list which is
unused currently after roam synch propagation optimization for
LFR3.0 has been done.
CRs-Fixed: 1007810
Change-Id: Icc8ef8a882813d980f05314cf07a379e607323ad
Remove unused code of sending probe request template to
firmware which is a legacy code where Scan was not
completely offloaded to firmware.
CRs-Fixed: 1007810
Change-Id: I8c876bdb696f70452354f5f84b504b4a6564c479
qcacld-2.0 to qcacld-3.0 propagation
Auto Shutdown cancel indication is needed to identify if a
driver is active in multi wlan radio platforms. Userspace
application processing auto shutdown event combines these events
from multiple drivers to arrive at system idle condition for
auto shutdown.
Change-Id: Icc51386bde58d3882e36ab09cd31a527b140a937
CRs-fixed: 1001128
If lro_disable is called after cds_close, which is the case
for module unloads, then many of the pointers used in dereg
sequence are NULL (CE_state, hif, txrx_pdev). There is a case,
when interfaces are removed, when these pointers are there.
Check pointers before using them in dereg code.
Update hif_map_service_to_pipe so that it will return E_INVAL if
the service is not in the table. Add logs for cases where either
leg information is not updated on return.
Acked-by: Orhan K AKYILDIZ <oka@qca.qualcomm.com>
Change-Id: I5b88a297134dcc1d7a6a68dd2a9879dfd1553a7e
CRs-Fixed: 1014428
The structure is taking too much of a space and pre-alloc was
failing for a single allocation for ol_txrx_pdev. Shrunk the
structure from 112 KB to 12 KB.
This update has a corresponding update in qcacmn.
Change-Id: I358e74b47165fa08cb5d37f095b44bff3f83fdfc
Acked-by: Orhan K AKYILDIZ <oka@qca.qualcomm.com>
CRs-fixed: 1012346
During a recent merge, a frame type was being set to a similar
looking value (ol_tx_spec_no_free instead of ol_tx_frm_no_free) and
this is causing crashes on tx-completion.
Also capitalize the constants.
This is a stability CR.
Change-Id: Ic86dafc5baa80ae634c5267794f3add0e06d076f
Acked-by: Orhan K AKYILDIZ <oka@qca.qualcomm.com>
CRs-fixed: 1010581
qdf_wait_single_event expects msecs as the timeout value.
However, two references in dp, second of which is this instance,
passes the value in ticks. This causes the value to be converted
to msecs a second time by the function and hence an incorrect
timeout value.
The other instance is in the qcacmn project.
Change-Id: I11c36ecf54b04cf1e3671a86594822b39b8ccaaf
Acked-by: Orhan K AKYILDIZ <oka@qca.qualcomm.com>
CRs-fixed: 1012345
FW DIAG log events are serialized to MC thread(WMA message queue)
which is causing PE/SME message queues starvation when FW is
generating flood of debug log events. Since WMA message queue has
higher priority than PE/SME message queue serialized FW debug log
events eventually lead to SME command queue time out because PE
message queue is starved. Fix this PE/SME message queue starvation
by moving FW diag log event processing to kworker thread.
Change-Id: Ifd8688c61bfdd132a4727d377cfc2e975e5c5b13
CRs-Fixed: 1011762
Update TSF feature for vendor command QCA_NL80211_VENDOR_SUBCMD_TSF
to support TSF operations.
Change-Id: I89abf14b9b7d8ee8fe1c12f7684c87e4dee9bfb0
CRs-fixed: 997799
Fix incorrect handling of additional IE coming from userspace in assoc
response. additonal_ielen field used for the logical checks and buffer
manipulation does not contain correct value which might lead to incorrect
behavior.
Change-Id: I483696d1fa1a731e9afd0a4ea134900d81be7b43
CRs-Fixed: 998427
Fix enum values in cds_ieee80211_common by removing
unused enum values in ieee80211_opmode and updating
_MAX value in ieee80211_phymode.
Change-Id: If46be64fda0edb97881f8ea1bfe919a0a55a250f
CRs-Fixed: 989856
Pass original beacon TSF to user space application. This
TSF is used by the user space application for its internal
processing.
Change-Id: I6c1638801dba2b53cbcb5b1ebc925d6f4e035582
CRs-Fixed: 998544
qcacld-2.0 to qcacld-3.0 propagation
dphPrintMacAddr is printing mac address in decimal.
Print mac address in Hex format for readability.
Change-Id: I7a68d4d94745cee2274970196642d5041f09d184
CRs-Fixed: 940324
qcacld-2.0 to qcacld-3.0 propagation
At the time of driver load, countryCodeElected will be saved as
default country code.
If Driver changes country code through userspace, driver won't update
countryCodeElected as countryCodeElected is updated only for 11d scan.
In next scan if there are no scan results with 11d country code,
the driver will try to update country code on the basis of
countryCodeElected.
Fix this by not updating country code through 11d if
number of country code count is zero in scan results.
Change-Id: I0e5620a834dd3fef61d8a5f86ce753b9233bf56e
CRs-Fixed: 1004031
qcacld-2.0 to qcacld-3.0 propagation
When framework sends SET_FCC_CHANNEL command to driver,
driver removes channel 12 and 13 from valid channel list.
Even after removing channels from valid channel list,
BSS entries are not flushed from scan cache table.
BSS entries get removed when age out timer expires.
Scan results shows stale entries before age out timer expires.
As 12 and 13 are not in valid channel list, driver should
remove BSS scanned on channel 12 and 13.
Change-Id: I63ca0bea23da1430ca0e6f323555c3ac6b2d07cd
CRs-Fixed: 949293
qcacld-2.0 to qcacld-3.0 propagation.
Remove wlan_hdd_band_p2p_2_4_GHZ as it's not being used any more.
Change-Id: I69d6e1b0c8298cab1776264f3e61445c95538729
CRs-Fixed: 944663
qcacld-2.0 to qcacld-3.0 propagation
Currently default min_rest_time, max_rest_time and idle_time
are 50, 100 and 25 respectively.
When STA is connected in default behavior, DUT will stay on home channel
for 50 ms, then check traffic at every 25 ms increments.
If no traffic, then it will move to the next channel.
It will stay on home channel for max 100 ms. So 75 and 100
are the possible max_rest_time values.
If idle_time is reduced to lower value, better throughput
is possible as DUT need not to wait on same channel for
data inactivity.
Introduced ini params to configure min_rest_time & idle_time.
Change-Id: If28b7a30147fc11c67817314021fa502d2d8f5ad
CRs-Fixed: 952151
qcacld-2.0 to qcacld-3.0 propagation
sme_roam_connect() has a direct path to call hdd_sme_roam_callback(),
which will change the conn_state.
If direct path, conn_state will be accordingly changed to
NotConnected or Associated.
Driver is not changing connection state to eConnectionState_Connecting
when connecting with iwconfig.
If connection state is not changed, connection state will remain
in eConnectionState_NotConnected state.
In hdd_association_completion_handler, "hddDisconInProgress" is set
to true if conn state is eConnectionState_NotConnected.
If "hddDisconInProgress" is set to true then cfg80211 layer is not
informed of connect result indication which is an issue.
Change-Id: Ieeaef582a04aa90ddcdcc373b00b68442c795337
CRs-Fixed: 900008
qcacld-2.0 to qcacld-3.0 propagation
Some AP doesn't announce Extended Capabilities IE in Probe Response.
Device should not send extended Capabilities if AP doesn't support.
Change-Id: I53215b866cb90f4addf45e3b6ed8af435eb57842
CRs-Fixed: 930199
qcacld-2.0 to qcacld-3.0 propagation
Some logs are excessive and unnecessary.
Remove/modify these redundant logs.
Change-Id: Ia7286612d81df3bbb266ba217f548516fa38d3de
CRs-Fixed: 885880
qcacld-2.0 to qcacld-3.0 propagation
As a part of logging improvement, modify redundant
logs, change certain log levels in TDLS link setup/
teardown path to make logs more useful.
Change-Id: Ibb0ee1edb5bbb1aed57bccbc15354031b0362198
CRs-Fixed: 861452
qcacld-2.0 to qcacld-3.0 propagation
Some logs while Processing netlink messages are excessive.
Remove these redundant logs.
Change-Id: Ic5104e6fb2d306b488adf2a3919e004e5b57e186
CRs-Fixed: 879049
qcacld-2.0 to qcacld-3.0 propagation
When TDLS peer link state is in connecting state; at the time of
DISABLE link from upper layer driver is not doing TL cleanup
for connecting state.
Fix this issue by cleaning up for connecting state as well.
Change-Id: Ib97128b96ca13569f8d247e3eaa3c86938e426d1
CRs-Fixed: 773076
qcacld-2.0 to qcacld-3.0 propagation
Initialize spinlocks sap_update_info_lock and sta_update_info_lock which
are used during SAP and STA information update respectively. These
uninitialized spinlocks lead to crash during access due to bad magic
value of the spinlock.
Change-Id: I7d2df8337f9feed352430774907aa095affa5a69
CRs-Fixed: 1011996
PLD is a interface between CLD and CNSS/ICNSS. It hides
CNSS/ICNSS APIs from CLD and provides a set of common APIs.
CLD modules should use these PLD APIs instead of calling
CNSS/ICNSS platform APIs.
Register WLAN driver operations with PLD APIs for PCIE/SNOC.
SDIO/USB changes need to be done separately by adding SDIO/USB
support in PLD and replacing SDIO/USB specific functions with
common PLD APIs.
Change-Id: Ie329316dd5646aa2130208e2825bedc4f2aef719
CRs-Fixed: 1000113
Make special handling for monitor mode operation. Take care to handle
amsdu packets in which case firmware marks the last_frag in msdu_info
field. These MSDUs of AMSDU are stiched using frags_list of skb and
handed over to network stack.
Also take care to extract and update the radiotap header to head of
the packet.
Change-Id: I4ed9696175e63884b5db682a2a4c4df504a7fb20
CRs-Fixed: 963060
Handle monitor mode set capture channel, first set capture channel will
start the monitor mode vdev along with setting the monitor mode channel.
Subsequent set channel commands use the WMI_PDEV_SET_CHANNEL_CMDID to
set the capture channel.
Change-Id: Ibae71a4799e569bf1f1f4d39b23a7d2183fa40e5
CRs-Fixed: 963060
Add monitor mode support. Configure target to deliver 802.11 packets
in raw mode. Below is the procedure to start the monitor mode.
insmod /system/lib/modules/wlan.ko con_mode=4
ifconfig wlan0 up
"iwpriv wlan0 setMonChan 36 2"
or
"iw dev mon0 set channel 36 HT40+"
tcpdump -i wlan0 -w <tcpdump.pcap>
In this mode concurrency is not supported and module doesnot support Tx.
Change-Id: I211ece0a66e2d43bc111e523714942e1557e36f4
CRs-Fixed: 963060
qcacld-2.0 to qcacld-3.0 propagation
Currently wlan firmware has multiple different packet filters,
offload features such as Magic Pattern filter, MCBC filter,
RA filter and Bitmap pattern filter.
Firmware has to maintain different filter settings and different
source code to compare the filters.
BPF data offload is common architecture for packet filter offload.
Implement BPF data offload in driver.
Change-Id: I63a5f7222de74cbb80d656f20f42d1b8453dce26
CRs-Fixed: 960473
Correct comparison for 5G and 2G channel width. Currently the
maximum channel width test in cds_set_5g_channel_pararms() or
cds_set_2g_channel_params is incorrect. Set input channel width to
80p80 if input width is more than equal to maximum channel width.
Change-Id: I5a418c15474b355ea3c62c2de45052908f28113c
CRs-Fixed: 1009720