In sap_acs_channel_check fix ‘if’ condition will be always true for any
given channel, this will fail to validate if the given channel is in ACS
channel range.
Fix the if condition check from logical OR to AND to validate given channel
is within the ACS start and end channel range.
Change-Id: I1d69c9d440e641b052fd6098d1c99f22a64e9a9d
CRs-Fixed: 1056036
The enableOverLapCh is not populated from HDD context, So sap_filter_over_lap_ch
function always filter overlapping channel causing ACS to select only
non-overlapping channel.
Populate enableOverLapCh from HDD context to SAP context.
Change-Id: I99b1ada48573e8b03ab42a94d98f92f7b0b0e871
CRs-Fixed: 1055071
Propagation from qcacld-2.0 to qcacld-3.0.
1) Add check to find IPV6 mcast packet embedded in a
link layer unicast packet in wma_wow_wake_up_stats.
2) Add extra length check for IPV4 packets.
Change-Id: Ic2af69032262237b8751019817ae181913346818
CRs-Fixed: 1049254
Propagation from qcacld-2.0 to qcacld-3.0.
Correct the updation of various wow wakeup counts.
Change wow_icmpv6_uc_bc_count to wow_icmpv6_count
as there is no broadcast in case of ipv6.
Change-Id: Iceaf1226edbf909ca3881e049c33f7d121860ef2
CRs-fixed: 1049254
Propagation from qcacld-2.0 to qcacld-3.0.
Presently in updating wma_wow_wake_up_stats, icmpv4 and icmpv6
counts are increased just by checking ICMP protocol offset byte
and ICMPV6 protocol offset byte without checking for whether it
is a IPV4 or IPV6 packet. So it is possible that for ICMPV6 packet,
the IPV4 protol offset byte is equal to ICMP protocol or for some
ICMP packet, the IPV6 protocol byte is equal to ICMPV6 protocol and
thus both the icmpv4 and icmpv6 counts will get increased for that packet.
Add ipv4 and ipv6 packet checks as well in addition to the present checks
to avoid wrong increment in the counts.
Change-Id: I2d6e5d095d2f4b2dd474b9338bfc830b04bfa533
CRs-fixed: 1048651
Disallow host requesting for 2x2 chain if hardware is not capable of or
ini setting disabled it. Downgrade the request to 1x1 instead. No need for
waiting for NSS update to complete as all requests are serialized through
SME cmd queue.
Change-Id: Ifee4ce15771b57ac3cc1e85650c56f426c34c833
CRs-Fixed: 1037816
The existing peer_map_unmap_lock in ol_txrx_peer_find_add_id
does not include call to ol_txrx_peer_unref_delete. The peer addition
handling needs to be atomic with peer reference deletion (in case peer
ref deletion is required).
Move the peer_map_unmap_lock to include ol_txrx_peer_unref_delete.
CRs-Fixed: 1056442
Change-Id: Ica15ea70527f0ea116b960dd7958da73f304288b
qcacld-2.0 to qcacld-3.0 propagation
The problem with the existing code is:
* WMA_STA_WOW_DEFAULT_PTRN_MAX is set to 4 and in wma_wow_sta()
we make sure atleast WMA_STA_WOW_DEFAULT_PTRN_MAX free slots are
available before configuring the default wow pattern. But after this
check we are actually configuring 5 default wow patterns.
* If BPF is enabled, we are limiting the Max WoW patterns to 2,
because the free slots are 2 which is less than the expected default
free slots WMA_STA_WOW_DEFAULT_PTRN_MAX. we are not configuring
default STA mode wow pattern and hence no wakeups observed for
incoming packets.
Address this issue by changing the WMA_STA_WOW_DEFAULT_PTRN_MAX to 5 and
MAX WoW filters to WMA_STA_WOW_DEFAULT_PTRN_MAX if BPF is enabled.
Change-Id: If433cff18ce511e7fdffadff69ee13b762a1719b
CRs-Fixed: 973054
qcacld-2.0 to qcacld-3.0 propagation
* Set BPF filter only if the station/p2p client is in the connected
state.
* Depending on the BPF service enabled in firmware dynamically
configure the number of wow filters.
- If bpf enabled maxwowfilter is 2.
- If bpf is disabled maxwowfilter is read from ini.
Change-Id: I14c722c9a1189f4ba4fbc2c8a554ae85b7a61fa8
CRs-Fixed: 967535
With SAP+STA concurrency there shall be a new interface created softap0 on
which SAP comes up. In the present scenario the support for starting
the ap adapter only via the change interface.
Since the SAP adapter is not started the start_bss request from the
upper layer fails.
To migitate the issue add support for the start ap adapter from the
__wlan_hdd_add_virtual_intf.
Change-Id: I4d112441b5aa7ff91dafa9e43f9aceb18d0e13f0
CRs-Fixed: 1056331
qcacld-2.0 to qcacld-3.0 propagation
Currently ICMP counter is incremented only for IPV4 multicast packets.
But ICMP count includes total unicast/multicast/broadcast ICMP packets.
Add changes to update ICMP counter for unicast/multicast/broadcast
ICMP packets.
Change-Id: I00f9fb0c8231fd69f6c108ced8028eb19315006e
CRs-Fixed: 1020079
qcacld-2.0 to qcacld-3.0 propagation
Send wakelock stats to HAL layer when it requests through vendor
command QCA_NL80211_VENDOR_SUBCMD_WAKELOCK_STATS. This is a
blocking request in HDD.
Change-Id: Ie043323d90f63c19de2da9d1b8b54bc28d2c8f3d
CRs-Fixed: 958964
hdd_napi_event requires hif_ctx, after dynamic mode feature hif_ctx
is getting created later as part of hdd_start_modules. HIF ctx is being
created/destroyed depending on the interface up/down from the upper
layer, hence set NAPI event after hif layer is initialized.
Change-Id: I9fb21f6f75cc689620a6befd997956610e2ca3ae
CRs-fixed: 1055660
KR and CN have different DFS regions than what kernel provides.
Assign the correct DFS regions for KR and CN. Also use "enum
dfs_region" as the parameter type in functions that have
dfs region as parameter.
CRs-Fixed: 1047214
Change-Id: I2ddd67d3c29a448dd2a1d3a63113750783fb6731
send WLAN off event to WLS at the end of WLAN off steps
to make sure WLAN is really off when WLS calls 'glink deinit'.
Change-Id: I29e15d51ec306071fc9f5ff7e3565c75814944e8
CRs-Fixed: 985226
Make MAS (MCC Adaptive Scheduler) commands to be PDEV
specific.
Two instances of OCS (Off Channel Scheduler) can exist
in the FW (one per MAC) and FW provides the option of
enabling and disabling MAS on a per MAC basis. But,
Host does not have enable/disable option for individual
MACs. So, the agreement with the FW is for the Host to
send down a ‘pdev id’ of 0. When ‘pdev id’ of 0 is used,
FW treats this as a SOC level command and applies the
same value to both MACs. So, irrespective of the value
of ‘WMI_SERVICE_DEPRECATED_REPLACE’ in the WMI service
bit map, the pdev id needs to be ‘0’ (SOC level) for
the WMI command
WMI_RESMGR_ADAPTIVE_OCS_ENABLE_DISABLE_CMDID.
WMI command WMI_RESMGR_SET_CHAN_TIME_QUOTA_CMDID to set
the MCC quota is sent down as channel – value pairs.
The value being channel time quota and the channel being
sent down is a home channel. The additional requirement
from FW is that all the channels in a single WMI command
belong to the same MAC. FW asserts if the WMI command
mixes and matches home channels associated with
different MACs. So, although the PDEV ID is not part of
the WMI command struct, the cmd is in a sense PDEV
specific.
There is no change in the WMI command
WMI_RESMGR_SET_CHAN_LATENCY_CMDID to make it PDEV
specific since this WMI command always send only one
channel-latency pair to the FW. So, there shouldn’t be
any problem of FW receiving home channels associated
with different MACs, for this WMI command.
Change-Id: Ie22800e07bbeef65c43f9171de828533b982a06b
CRs-Fixed: 1052652
Add ndp_ctx NULL check in error scenario before
dereferencing it.
Propagation from qcacld-2.0 to qcacld-3.0.
Change-Id: I7a6aa92351e0140b78c9d7b95f2a6cca45f8e387
CRs-Fixed: 1044060
Host is sending OBSS start scan request twice to firmware.
OBSS scan start is triggered as part of the set context response
processing and it gets called twice after association.
Added condition check to allow only once the OBSS scan request.
Change-Id: I8ccc7172df9d89aaa09ad924ced7f8ed5a6ace13
CRs-Fixed: 1053626
Fix incorrect compilation flag termination.
Under WLAN_ENABLE_AGEIE_ON_SCAN_RESULTS compilation flag TDLS and few
other unrelated changes were present. This change set will remove
the unrelated changes outside this compilation flag.
Change-Id: I16ca3013147c549acc1b0758c268af717166ac57
CRs-Fixed: 1050754
qcacld-2.0 to qcacld-3.0 propagation
If a PMF Sta is already connected to one interface and try
to switch to other interface without sending deauth/disassoc,
sta entry is not deleted from previous vdev and one more entry
is created on current vdev. Due to this htt is not able to get
valid peer for EAPOL packets and EAPOL packets are dropped leading
to connection failure.
To fix this, Add check to delete PMF Sta from one vdev when
assoc request is received on another vdev.
Change-Id: Ida2e20fe08af3c6ed426822a71db1fd6854a0bea
CRs-Fixed: 1033224
qcacld-2.0 to qcacld-3.0 propagation
Add additional argument in ol_tx_queue_free to indicate whether
txq is vdev or peer queues to avoid extracting peer_id in case of
vdev txq queue in ol_tx_queue_log_free function.
Change-Id: Ic521c23b4001f15a382e9435413cdafca0c8b49f
CRs-Fixed: 1023457
qcacld-2.0 to qcacld-3.0 propagation
When the TDLS traffic flows continuously between the two
peers and if the antenna switch command comes from the
user, it creates a race condition and blocks the
antenna switch operation.
Add a new transition state in TDLS to avoid this race
condition.
Change-Id: I1c9b183c460e1401bd1ee2631489c57778ec665b
CRs-Fixed: 971505
qcacld-2.0 to qcacld-3.0 propagation
Currently in case of IBSS, beacons are populated with TDLS IE's
in extended capabilities though TDLS IE's and extended capabilities
doesn't signify anything.
Fix will ensure to exclude extended capabilities and TDLS IE's
Git-commit: c50b50f7f0616b4536e7df998e98f9347562e680
Change-Id: I63b6f413964cc53f2f25496fef40f99c4244293a
CRs-Fixed: 1017887
Pointer 'cds_get_context(QDF_MODULE_ID_TXRX)' returned from call to
function ol_txrx_ipa_uc_get_resource may be NULL and will be
dereferenced.
The fix is to check if cds_get_context is not NULL before passing it
to ol_txrx_ipa_uc_get_resource.
Change-Id: Idbb69bcbef6cb54df334c30419dc0f7015466f28
CRs-Fixed: 1042048
Validate the memory allocated for the bpf filter program before
dereferencing it.
Also return the correct error status to the caller
Change-Id: Ia165e2f8611830f26c6e466f74bb5e32fc8822e8
CRs-Fixed: 1042027
qcacld-2.0 to qcacld-3.0 propagation
Currently extscan_results_available event is posted to user space after a
bucket scan is completed. If the extscan start request is configured for
multiple buckets, then the user space application tries to fetch cached
results on every extscan_results available.
If the get_cached_results is issued with flush=1, then every get_cached_results
will have 0 scan results and since flush=1 is set, due to a bug in firmware
even the temporary scan cache is flushed, there by we miss reporting the
APs found in the previous bucket scans and only the last get_cached_results
will report the APs found in the last bucket scan. Whereas the expectation is
get_cached_results must report all the APs found in the complete scan cycle.
The proposed fix is in both firmware and host:
1. Firmware to ignore get_cached_results flush=1 and not to flush the temporary
scan cache in the middle of extscan cycle.
2. Host to consume bucket_started event within host driver and map
extscan_results_available with cycle_complete instead of bucket_complete.
Change-Id: I399204261fa3d8515146c590630a3bb663ee801c
CRs-Fixed: 975402
qcacld-2.0 to qcacld-3.0 propagation
Make the following enhancements to the EXTSCAN feature:
* Add buckets_scanned param while sending
on_full_scan_result/cached result event to user space.
* Configure REPORT_EVENTS_CONTEXT_HUB to firmware.
* Remove status while sending on_scan_event to user space.
* Add support for SCAN_THRESHOLD_NUM_SCANS /
SCAN_THRESHOLD_PERCENT while sending scan event.
Change-Id: Ib37ce7cef5b3ce9d9ee4ebdc5ea9bcadaad7b695
CRs-Fixed: 960456
Propagation from qcacld-2.0 to qcacld-3.0.
Dump some more info for WOW wakeup packet:
1) ether_type
2) proto_type in case of IPV4 and IPV6 packets
3) src port and dst port in case of TCP/UDP
Change-Id: I1578aa5322af50f0ae43248c48a2f754ea081970
CRs-Fixed: 1043939
Propagation from qcacld-2.0 to qcacld-3.0.
Change print type from %d to %u for the unsigned variables in
wma_wow_dump_mgmt_buffer and wma_wow_parse_data_pkt_buffer.
Change-Id: I2ea9ae2aa5c6f1bbec65b724de35a0071ea26804
CRs-Fixed: 1038593
Propagation from qcacld-2.0 to qcacld-3.0.
Dump soem information such as source MAC address, destination
MAC address, sequence number, packet type, subtype and other
important information for the first mgmt. packet after WOW wakeup.
Change-Id: I4f39d93e8aeb243ec3df5cc1a916aec0a1aa4819
CRs-Fixed: 1019037
Propagation from qcacld-2.0 to qcacld-3.0.
Dump some information such as source MAC address, destination
MAC address, sequence number, packet type, subtype and other
important information for the first data packet after WOW wakeup.
Change-Id: I3c83991f56be34412f3f10adf58bd991ecb536ca
CRs-Fixed: 1019037
Classify tx packets at one place and store packet type in
skb cb structure to avoid multiple check to determine
packet type at various layers.
Change-Id: Id2ea9b08bdcbc62b1d96d983d19bcf71becc9c42
CRs-Fixed: 1022454
Changes to configure different rx data path rx_thread,
RPS or NAPI through ini parameters. Also added support
for RPS mask setting using cnss-daemon.
CRs-fixed: 1026370
Change-Id: I23ab8fe0f05245b38cf4b37e93da8fd99d4c1f68
as per the latest draft for BSS bandwidth 160MHz, channel frequency segment 2
represents the center channel frequency. Update wma_get_channels to use correct
segment to calculate center channel when operating in 160MHz.
Change-Id: I9a8f2035b590a90415fbc5a0a6608c48bbd5b2e5
CRs-Fixed: 1048793
qcacld-2.0 to qcacld-3.0 propagation
If unloading the driver at the time __wlan_hdd_cfg80211_stop_ap is
called, free the memory allocated for ch_list before returing
from the __wlan_hdd_cfg80211_stop_ap. Otherwise it will result in
memory leak.
Change-Id: I16ab508f74068f7ca1452c97c6105a1ae6e38ef0
CRs-Fixed: 971886
qcacld-2.0 to qcacld-3.0 propagation
Currently, In SAP mode due to incorrect wep key
index broadcast frames are not encrypted.
Fix is to make sure to update default index for
BSS(group) key.
Change-Id: I328855decbad20dbd88b48022e466e4f78f5d722
CRs-Fixed: 932749
qcacld-2.0 to qcacld-3.0 propagation
In __wlan_hdd_cfg80211_scan(), no.of channels printed as received no.of
channels from supplicant instead of filtered no.of non DSRC channels.
Fix to update the correct no.of channels
Change-Id: I5f424a043535b0fdcc7886ba062b34fbc2e6dca0
CRs-Fixed: 1036775
qcacld-2.0 to qcacld-3.0 propagation
As per current implementation 11P channels are added to 5G band
as part of driver initialization if FEATURE_STATICALLY_ADD_11P_CHANNELS
is not defined. Kernel has enabled 11P channels due to which it gives
11p channels as part of scan command. This increases the scan time.
Add changes to remove 11P channels from the received channel list
during scan command.
Change-Id: I4ae24a1813ac5d4738022b2f15a93736c2f05978
CRs-Fixed: 1003326
qcacld-2.0 to qcacld-3.0 propagation
Host driver receives 11P channels as part of PNO scan because
kernel enables 11P channels. This increases the scan time.
Add changes to remove 11P channels from the received
channel list in PNO scan
Change-Id: Iede759dfabdc971309f3d1f68411d241f415b422
CRs-Fixed: 1017824
qcacld-2.0 to qcacld-3.0 propagation
In some cases, it is possible that driver get request for connection
from supplicant without getting disconnect for previous connection.
If there are two active session, driver will return the error.
Driver should do disconnect first followed by check for
max concurrency is allowed.
Change-Id: Ie7bf202c47d0282019730448096d91c7dc888e34
CRs-Fixed: 945566
The debug message was added to identify a case of trying to
send a unicast traffic to an unknown peer. However, as per the
implementation, the debug print becomes always true while
sending unicast traffic in station or p2p client mode.
Integration from qcacld-2.0 to qcacld-3.0.
CRs-Fixed: 1051920
Change-Id: I849317c699ffca1e057c4e59747e08535baca381
Directly accessing fw->data is not supported on msmcobalt.
It causes system crash due to invalid pointer.
Hence allocate memory and copy the content of
wlan_mac.bin to that memory before accessing it.
Change-Id: Ie10a8ccd3cc16d48fa509ece997f9098fce52c55
CRs-Fixed: 1045912
Auto-generate mac address using device serial number when the mac
address that passed from WLAN FW is invalid and no mac address
specified in ini file and no user defined mac address in wlan_mac.bin .
CRs-Fixed: 1047629
Change-Id: I4ecc901558bc526c99f8b9bdb9442a4d288b313c
Add lock to serailize the freeing of LRO descriptors.
Without this double free of LRO descriptors lead to list
corruption.
Change-Id: I0b3c9ddecff0700ac1f6ec44f09c9ddf59997799
CRs-Fixed: 1053657
When auth timeout failure happens, as part of clean up process
vdev down is sent to FW but the vdev up happens only after the
assoc response is received. Sending the vdev down to without
vdev up leads to negative vdev up count value in the FW.
Check if vdev is up before sending the vdev down.
Change-Id: Ia5394390d376c638b3976d446a6ecc98d0584159
CRs-Fixed: 1051760
Sessionize VHT Capability by updating the session
entry at join request or start bss and read the same
capablities at LIM instead of reading from global VHT
CFG items.
Following CFG items are taken care as part of this change.
WNI_CFG_VHT_SU_BEAMFORMER_CAP,
WNI_CFG_VHT_SU_BEAMFORMEE_CAP,
WNI_CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED,
WNI_CFG_VHT_MU_BEAMFORMER_CAP,
WNI_CFG_VHT_MU_BEAMFORMEE_CAP
Change-Id: I7c33de1180416db0027b4690170060549847dd9a
CRs-Fixed: 1029145
Sessionize VHT Capability by updating the session
entry at join request or start bss and read the same
capablities at LIM instead of reading from global VHT
CFG items .
Change-Id: Idef009d4c76cfc6939359dc09379fc1f0d820589
CRs-Fixed: 1029145
HDD validate context check is at wrong place in __wlan_hdd_cfg80211_scan()
which is leading to invalid pointer access and page fault. Move HDD
validate context check at begining of scan API to avoid accessing any
context pointer which is getting freed during SSR/driver unload.
Change-Id: Id91c9ea54c513ecc25bdf42904a5bb5cde2e91ce
CRs-Fixed: 1025498
Apps crash observed due to nested spin lock calls from
the soft irq context.
Change the tdls spin lock calls from qdf_spin_lock() to
qdf_spin_lock_bh(). This will avoid nested spin lock
calls.
Change-Id: I9c3d32f2385bec35ea7d9773ed4c36968a79a28b
CRs-Fixed: 1053041
Add support for 5/10 MHz channel width for STA and SAP role. To
enable/disable feature, following ini parameter will be used:
* gSub20ChannelWidth=0: indicates do not use Sub 20 MHz bandwidth
this is also the default value.
* gSub20ChannelWidth=1: Bring up SAP/STA in 5 MHz bandwidth
* gSub20ChannelWidth=2: Bring up SAP/STA in 10 MHz bandwidth
Change-Id: Ic6d534dc1eae60fcd2fb7533c934b9ea28e6dd78
CRs-Fixed: 1013211
Currently the HDD code uses a variety of logging APIs. In
qcacld-3.0 HDD should converge on a unified set of logging APIs.
Update wlan_hdd_debugfs.c to use the unified set of APIs.
Change-Id: I3981157eb8e285bc7259279fccd582a896eab36b
CRs-Fixed: 937649
Currently the burst_dur private ioctl enforces a maximum limit of
8192. Per firmware team define the max as 102400 (for 100 ms or a
normal beacon interval).
Change-Id: I3f01b06ad047f7b972e649c798e4a507fcc55755
CRs-Fixed: 1050791
Currently the HDD code uses a variety of logging APIs. In qcacld-3.0
HDD should converge on a unified set of logging APIs. Update
wlan_hdd_memdump.c to use the unified set of APIs.
Change-Id: I6026bed45fe24ca0c2c0cfb62a97f0dc613bd1ea
CRs-Fixed: 937665
qcacld-2.0 to qcacld-3.0 propagation
Add NAN API wrapper function definitions and also fix compilation
failure when NAN data path feature is disabled.
Change-Id: Ib4a3133568eee0c2257c65bb0a8905c44048f0c2
CRs-Fixed: 1049546
qcacld-2.0 to qcacld-3.0 propagation
Take action to delete peer in NDP_END Indication, rather than
NDP_END Response event from firmware. Earlier, device initiating
NDP_END will only get NDP_END_Response event from firmware, but
that behavior is changed now and both self and peer device will get
NDP_END_indication with peer map for ndp end.
Change-Id: I7316cc3864052eef4c7bbe9bbac01f0333909c59
CRs-Fixed: 962367
caller and callee of wlan_hdd_cfg80211_connect_start API are
interpreting BSSID and BSSID hint differently due to incorrect order.
This bug was introduced through change id:
I94c5a3dbbd831f6c82080dcc91008f9e3e6829f7
Fix the order of arguments.
Change-Id: I17850cc0d681664631b68a5193f936b678bff31a
CRs-fixed: 1051160
Pointer pointing to address which used to be start of the
mac header is no longer true after pulling the head of the frame.
Due to above situation, it causes dangling pointer situation. Fix
the error by re-assigning the correct address.
Change-Id: I71693f86b1971e3c6d1ddd9c377ef888122c2bb8
CRs-Fixed: 1048951
In current driver, there is already an API called cds_allow_concurrency
which is functionally similar to csr_isconcurrentsession_valid. Remove old
API csr_isconcurrentsession_valid to have single API.
Change-Id: If81900af5cb7291917fe915b44af5cf763f16d46
CRs-Fixed: 1047054
In current code base, some of files are not meeting linux coding
standard.
Fix them to satisfy coding standard.
Change-Id: Iedb1ec9ad7c75cb9f7ef97b19f14dca3b5eb9b6c
CRs-Fixed: 1051212
In case there are multiple copy engines (for example in ihelium), the
peer map and unmap handlers may be executed on different CPUs
concurrently. These functions access global peer data structures and are
not SMP-safe.
Re-factor the existing code to make it SMP-safe.
Change-Id: I3f52e17a80d7eae8d4c2fb88da7f57f64455b031
CRs-Fixed: 1050653
Place a big spinlock on the rxhash so that only one
activity happens on it at a time.
Change-Id: Id1a020f508b6232d401d44da1cd0b9592288c81c
CRs-Fixed: 1048807
Assign the list to null inside the spinlock such that no one else
can access the free nodes. Then free the list outside of the spinlock.
This spinlock was causing a watchdog bark.
Change-Id: I9a34c8c3ea8451004814bcabfcbb81744d71ec45
CRs-Fixed: 1052458
Bus link voting needs to vote for the link up before
voting for the link down. The sap module voted for
link down before link up, overriding the default
settings of an always on bus. This confused the suspend
resume system making it send WOW_IFACE_PAUSE_ENABLED
when the bus interface didn't have a "paused" mode.
Sap module should vote for link up when a sta is added
and vote link down when removed.
Change-Id: I5c042a3a4b3d4e6528fdc7edc9e0413c0f811192
CRs-Fixed: 1049469
Fix the compilation error when the feature flag WLAN_OPEN_P2P_INTERFACE
is disabled.
Change-Id: I661f31f0f5c06afbaab789836078822c7af08efe
CRs-Fixed: 1042901
Add support for pre CAC on SAP for the user requested channel.
The reason for the requirement is to have SAP operations without
interruptions due to CAC. After starting SAP on the 2.4GHz
channel, the driver will start a pre CAC on the 5GHz DFS channel
requested. If no radar is detected, SAP is expected to switch
from the 2.4GHz channel to the DFS channel mentioned in the pre
CAC request. If radar is detected SAP will continue to operate on
the 2.4GHz channel. To provide the pre CAC channel to the driver,
vendor commands/attributes are used .
Change-Id: I4cf4bb5a861eea05f37fafb3bf35d327f5377aab
CRs-Fixed: 1045242
Check STAID value returned by hdd_get_transmit_sta_id against MAX_STA,
before accessing array based on STAID index.
Change-Id: I4ac88e3d95f425ddc3a8690ef5333e0a4e67d328
CRs-Fixed: 1050083
TDLS init/exit functions have some dead code and it causes
memory leak for each wlan on/off operation.
Remove the dead code from TDLS init/exit functions.
Change-Id: Ie43057d94a27c34e970293b5cbc75edb6c0f6ca8
CRs-Fixed: 1050841
TDLS peer idle timers will be created only for implicit and external
mode operations. But tdls exit operation try to stop these timers
without checking the state of the timers and causes assert in
timer module.
Add changes to validate timer state before calls timer stop
function.
Change-Id: I6d41bbd99b49326b5a6eb8350f67923626d42400
CRs-Fixed: 1050836
qcacld-2.0 to qcacld-3.0 propagation
While RTT ranging happens, userspace application initiates FTM
request via host to FW. After sending the FTM request, host
might go to sleep mode sometimes so FW will not be able to send
the OEM response event resulting in poor ranging results.
This change registers OEM response event as WOW wakeable so FW
wakes up host whenever it receives OEM response which helps OEM
response to reach userspace application on time for better
ranging results.
Git-commit: 4de9b661e45a0bde4dfefc760edf03d1b8f4dd68
Change-Id: I71b77cfa09c5039b487e9a93490837a084314fb3
CRs-Fixed: 1018887
Bus bandwidth request timer samples the traffic on STA and
P2P client adapters to trigger bandwidth request and also enable
tcp delayed ack trigger to cnss daemon.
CRs-Fixed: 1050190
Change-Id: Iecd8a3f3762aa4c7743fb6ea22a8216fdac2ac8c
Currently MCL driver loads/unloads when user tries to
Switch On/Off from GUI and load process is different
for the static and dynamic built driver.
With this feature, we shall have a uniform behavior for
static and dynamic driver, where the driver will be
loaded once and unload never.
Mode switch for different modes is supported via sysfs entries.
Change-Id: Ica49dd289d7f1f0ad0c56af76bd7bcfeca433a2e
CRs-Fixed: 1049218
As a part of the dynamic mode changes, the CDS modules shall be
closed/re-opened several times. Depending on the STATE of the driver,
the modules have to be initialized.
This function shall be invoked when driver state
is OPENED(DRIVER_MODULES_OPENED) and has to be enabled.
Change-Id: Ife4a4d8121bdc5ef9ed92aa9aea1d92ee4554732
CRs-Fixed: 1045626
Update default INI config value for rm_capability to indicate
support for LCI capability.
Change-Id: Id5303ffc4004e58f6302f8692a15b8040231c3a4
CRs-Fixed: 1049333
Remove the usage of typedef for oem data request and oem
data response data structure.
Change-Id: I94f05833baa9b6baaf2272f63a33236437a96bbf
CRs-Fixed: 1038872
Remove oem data rsp passing over multiple layers.
This change set sends the OEM data response directly to
SME from WMA instead of going through LIM/MLM.
Change-Id: I3cff10ff7bdbcee39b39bd9ba03b5eff8444b017
CRs-Fixed: 1038872
Remove oem data request passing over multiple layers.
This change set sends the OEM data request directly from
SME to WMA instead of going through LIM/MLM.
Change-Id: I151fa771544e9f74b1b69b18d689176752760621
CRs-Fixed: 1038872
Remove handling of deprecated OEM related events since FW and
userspace application will use only TLV based messaging.
Support to handle following events are removed,
WMI_OEM_CAPABILITY_EVENTID
WMI_OEM_MEASUREMENT_REPORT_EVENTID
WMI_OEM_ERROR_REPORT_EVENTID
Change-Id: Ia194f559acde6689a50c56b52078b7dc967c6159
CRs-Fixed: 1038872
qcacld-2.0 to qcacld-3.0 propagation
Fix uninitialized stack use in csrRoamReadTSF by initializing
variable of struct type tCsrNeighborRoamBSSInfo to zero.
Git-commit: d39cf92e69222e03f89238313f5b8c100ecd4ecc
Change-Id: I4211b41b5e30d414e45691a5bab4048587cc8499
CRs-Fixed: 1018486
qcacld-2.0 to qcacld-3.0 propagation
Due to pre-emption there could be probability that tdls context
is accessed in wlan_hdd_tdls_check_power_save_prohibited after it's
released. This will result in kernel panic.
Protect tdls context with mutex lock before accessing
Change-Id: I33369320de5b0aadae661d7d27fbc5ba18e9e409
CRs-Fixed: 990645
qcacld-2.0 to qcacld-3.0 propagation
When STA process Neighbor report from AP, session_id is declared
as one byte variable and its overwritten with four bytes value
in csrRoamGetSessionIdFromBSSID. This is observed on enabling stack
protection in kernel config(CONFIG_CC_STACKPROTECTOR).
Fix is to declare session_id as four bytes variable.
Git-commit: 96646d1eb48c4f3bf45555b8f636f90cf925b8b8
Change-Id: I6b2fd40a5466fe5dd72d394abb682229a550e0b1
CRs-Fixed: 1025272
Propagation from qcacld-2.0 to qcacld-3.0
- Current length of bpf is not set during the reset filter. set offload
is allocated through malloc, so invalid values for current_length
are recieved during reset. Memset set_bpfload to zero after
allocation.
- update the bpf service to hdd correctly depending on the
wmi service bitmap recieved from the firmware.
Change-Id: Iaf4774865cf0698a2deebac5cea62c873146e838
CRs-Fixed: 985562
WLAN suspend/resume feature has tight dependency on APPS platform
suspend/resume support. On new targets APPS suspend/resume is not
supported until target is feature complete. In absence of APPS
suspend/resume support testing WLAN offload features become
difficult. Add unit test framework to test WLAN suspend/resume
features using private IOCTL command by simulating APPS
suspend/resume behaviour.
Trigger WLAN suspend:
iwpriv wlan0 wlan_suspend 0 0
To resume WLAN run a ping test from access point side and very 1st
ping request unicast packet should trigger wake up.
If FW is not waking up APPS then use below command to do a manual
wake up:
Trigger WLAN resume:
iwpriv wlan0 wlan_resume 0 0
This unit test framework is only for SNOC.
Change-Id: I177a0047f460aa2a305a9e4e46fbfaa94a81dced
CRs-Fixed: 1042205
In function wma_roam_scan_filter, memory is allocated to local variable
params. And in default case of the switch, we are returning from the function
without freeing the params memory, this cause memory leak.
To fix this, free params memory before return in switch case.
Change-Id: I0a8825b44f4bcd9b05f0e1f0e6cdd0d114af0a01
CRs-Fixed: 1048116
In function csr_update_lost_link1_cmd, memory is allocated to
local variable struct scan_filter, further we passing this
variable to csr_roam_prepare_filter_from_profile function and
allocating memory to the members of the scan_filter. At some
point in the function we are returning without freeing memory
allocated to scan_filter, which causes memory leak.
Make sure to free scan_filter’s memory before returning.
Change-Id: I448cf0d4bb16d4769b50c96495038684909e0739
CRs-Fixed: 1048116
In function convert_qos_mapset_frame, restrict dscp_exceptions array
access index to size of array
Change-Id: I31ed8edaee1a9b3715f66686a8a45d5f2ffd4532
CRs-Fixed: 1042968
Change-Id I35d802f564e41ee0b30386ee7b74d2b44eb80ecf
Revert this change to allow re-association to same AP which is
required for HS certification.
Change-Id: I75114b5e36b4ce6def602b9054481845ac09c56a
CRs-Fixed: 936342
Reduce some of error log levels to info level in suspend path to avoid
logging them to console.
Change-Id: I61096bdbf757cd21f959fa716f35f65cd27cc9cc
CRs-Fixed: 1048395
In function hdd_hostapd_sap_event_cb frame size exceeds 1024 bytes
due to changes to some structures in msm-4.4 kernel, so compilation
for 32-bit systems might fail
Thus, reduce structure allocations on heap instead of stack in
hdd_hostapd_sap_event_cb.
Change-Id: Ie710afbd6c066a3d770c6c9aac0cfd675ea57f53
CRs-fixed: 1046882
connection status is not updated at HDD because
eCSR_ROAM_CANCELLED is not handled at hdd callback.
Added support for eCSR_ROAM_CANCELLED so that HDD updates
connection status to upper layers.
Change-Id: I4c185bb3a370a0562de6431fde8952c68789de53
CRs-Fixed: 1043090
Avoid converting invalid frequency i.e zero frequency to channel using
ieee80211_frequency_to_channel() function.
Change-Id: I4a32591e313183348180a1d30a950b4b174a27cc
CRs-Fixed: 1047642
In function wma_send_peer_assoc, logging error when wmi_unified_peer_assoc_send
failed. But error type used in this log is wrong, use "status" instead of "ret".
Change-Id: I8dbdd68e16d665e5a7749e10c7006da9f96a6fd7
CRs-Fixed: 1042968
In function wma_get_mcs_idx variable "match_rate" is not initialized.
Initialize "match_rate" to avoid dereferencing uninitialized variable.
Change-Id: Id4c7e1913628007087c58149e4b7033320d4cc79
CRs-Fixed: 1042968
In function wma_add_bss_sta_mode, variable "peer" is not initialized.
Possibly we may pass this variable to wma_remove_peer function as is
and that can be dereferenced inside wma_remove_peer function.
So initialize peer with NULL to avoid dereferencing uninitialized variable.
Change-Id: Ibc484759b5e92052a3500137464e47287ccad939
CRs-Fixed: 1042968
Remove extra variable "flag_bss_present" used to indicate if scan
result present based on pointer "bss_desc". Instead use "bss_desc"
itself.
Change-Id: I3fe5474d41219b44cbe38fa88c51013526c081c9
CRs-Fixed: 1042968
Add input validation code in function __lim_process_sme_join_req
to make sure "mac_ctx" and "msg_buf" are not null.
This input validation will prevent any possible null pointer dereference
issues.
Change-Id: Ib12ffbe1d6fdcd841fd10158b59d648d0b94aa47
CRs-Fixed: 1042968