qcacld-2.0 to qcacld-3.0 propagation
As part of "change iface" in HDD, host does close session (VDEV DELETE) and
as part of "start ap", host invokes open session(VDEV CREATE).
Link Layer(LL) stats query is received in host driver in a corner/race
condition between the events "change iface" and "start ap" which leads
to an exception issue in firmware since FW receives REQUEST_LINK_STATS WMI
for a deleted VDEV.
This fix adds a boolean variable vdev_active to vdev structure(wma_txrx_node),
which is set to true once vdev is created. vdev_active is checked for TRUE
before sending LL stats query to FW with WMI command.
Git-commit: cf7bf99eb9a71b1043cd230aee704c44c62c98ff
Change-Id: Ifcc986c3352e4e66da35b8d6c489d98dbe61401d
CRs-Fixed: 987734
(cherry picked from commit b82c03d8686a57b120f991ffbb9b9801c908aac8)
Send HT/VHT CAPs IE to firmware per band. This will allow certain
features like LDPC to be configured per band.
Change-Id: I21c83af984f9be3ade46121ef148b52568c3ad0f
CRs-Fixed: 1055774
(cherry picked from commit 2a94c5666ea0c66477d0086c8d5a401db8e4afcf)
This reverts Change-Id: I12e1db54468c7215318333b55d991c53886d21ff
WLAN driver is blocked from promotion as the dependent kernel
change is not merged yet. Getting/setting unsafe channels and
dfs nol are no longer be present after reverting.
CRs-Fixed: 1061220
Change-Id: I110df8d25464ff0d70428aa275538a98667ac57d
This reverts Change-Id: I3d3de3789a7d560ed171294fa9a1ebe6389746a7
WLAN driver is blocked from promotion as the dependent kernel
change is not merged yet. PM suspend_noirq/resume_noirq are
not available after reverting.
CRs-Fixed: 1060669
Change-Id: I2b1300bbb19d2e4975bb86a82a892501b993827b
This reverts commit Change-Id: Ib16a4e86f2378a8ca3f7eaada54fc7a3d67a886b
WLAN driver is blocked from promotion as the dependent kernel
change is not merged yet. Race condition between PM suspend and fw
irq will occur again after reverting.
Change-Id: Ida519d607df1e1e183c7af445d48be2f50101ce7
CRs-Fixed: 1060748
In current codeflow, we are maintaining the length of the TSO segments
belonging to one jumbo packet inside tso_info, which is common for
all the segments of one jumbo packet. This works if the length of
the segments (frag[1]) is the same. In case it is not, it ends up
assigning incorrect length to all the segments. This is resulting
GMS login failure.
Fix issue by maintaining the total length of the segment in the
qdf_tso_seg_t structure.
Re-factor code for easy readability
Add TSO_DEBUG prints which can be enabled (compile time) to debug
TSO issues
Change-Id: Ie0cf8434902c0713ef8d36dc36c105afa6b5eabc
CRs-Fixed: 1062556
(cherry picked from commit 0a851f054171cf4b2f5bd7e8cd6841e90d999928)
When pktlog is enabled in INI (i.e. no iwpriv commands are issued),
store the events forwarded from firmware into the pktlog buffer.
Host will not honor any pktlog disable command if pktlog enable command
was not sent previously with WMI_PKTLOG_ENABLE_FORCE.
Change-Id: Id0b7dd6b4573147eef9b80b57bc78284e52807ec
CRs-Fixed: 1062295
(cherry picked from commit 07e5fbfcf0ec1ca7e92721a523e401e70887f487)
Fix below issues:
1) check cds_get_context results before use
2) remove function calls from ASSERTs
3) make sure variables are initialized before use
4) check pointers for NULL before dereferencing
Change-Id: Iac92e6f2d1030a7dd12469e34341135bea7c781f
CRs-Fixed: 1047286
(cherry picked from commit a2547fd35fc517abfbc96363768b5d036d59d057)
qcacld-2.0 to qcacld-3.0 propagation
Currently driver block wpa_supplicant context for response
for 5 / 5 seconds for LL stats and firmware memory dump
feature respectively. But in M framework watch dog will
be triggered after 1 second because driver is holding
the context longer, which lead to wd thread starvation.
As a part of this fix, block time is reduced to 800 msec
respectively in both cases.
Change-Id: I02cc7623bc0bc6004ece972f8c4a5e8e751131d2
CRs-Fixed: 951119
(cherry picked from commit 6f39e5ac60eac096107a36b8feb9218ceeef6c38)
qcacld-2.0 to qcacld-3.0 propagation
Host should not send the ipa_enable_disable cmd to firmware
during driver unload.
As a part of this fix, Host discards ipa enable/disable
commands during driver unload.
Change-Id: Ib7fe63463eaaa2f124428c73857f19e65bce67a3
CRs-Fixed: 994677
(cherry picked from commit 67c30cf80f9ff7e05637a08f5b25cec6fa20c38e)
qcacld-2.0 to qcacld-3.0 propagation
During driver load, host configure multicast address
filter list count as 5 though firmware support upto
16 addresses. Because of this firmware is not filtering
the address beyond 5.
As a part of this fix, increase the mc filter list count
to 16.
Change-Id: I885dfbf9ad4740c4404701a24bb8aa6eb7b2dbc6
CRs-Fixed: 986165
(cherry picked from commit d04517eb4352377a3eac92ef06e96bc207a6c653)
qcacld-2.0 to qcacld-3.0 propagation
During suspend request host send wow cmd to fwr and set
target suspend true so other wmi cmd won't send to fwr.
While waiting for wow ack/nack from fwr, if time out
happens then host inject crash and start self recovery.
But inject cmd is getting dropped due to target suspend is
set.
As a part of this fix, reset target suspend flag if timeout
occur for wow ack so self recovery can be triggered.
Change-Id: I1db556f9aa83fbf1324ddc1c1d205b0217b11bc2
CRs-Fixed: 983694
(cherry picked from commit 7aa878de9ba001e573cb63b52ddf4d78543bb673)
qcacld-2.0 to qcacld-3.0 propagation
If SSR/ram dump collection is in progress, rmmod waits
for it's completion for 75 times. But for high latency
target SSR/ram dump collection is taking more then 75 sec.
As part of this fix,For HL target set retry count to 200.
Change-Id: I8cc052c748e6a6dfff45675f9c15ead00b002a11
CRs-Fixed: 974023
(cherry picked from commit f788043e64fe707c495b2c0baee6e6d116268068)
qcacld-2.0 to qcacld-3.0 propagation
Currently for low latency target, host is waiting for 1 sec for download
complete, which is blocking MC thread. Due to this MC thread is not
serving the SME queue and which triggers the active cmd time out.
As a part of this fix, MC thread waits for download complete only
for those frame which needs OTA.
Change-Id: I25f45e969dd5bbf2341d586265d84919755f6ed3
CRs-Fixed: 967842
(cherry picked from commit c54a6f76ec228eaca7fa5f1f529d29011a83c445)
This is a qcacld-2.0 to qcacld-3.0 propagation
This commit allows the upper layers to send setband request to
driver using vendor command.
Change-Id: I3ce769e5426a5afb85979b4e19dbabd234f18e98
CRs-Fixed: 879527
(cherry picked from commit 0e0eaa6aa061031c5cf5314497b9d41eb0aef850)
qcacld-2.0 to qcacld-3.0 propagation
Observed kernel panic due to the race between initialization of
logging wait_queue in supplicant thread context and the same
uninitialized wait_queue is referenced in MCThread context.
To mitigate this issue, don't send logs to upper layers if logging
service is not initialized.
Change-Id: I96e3efb3947279be64b83a27a7e2458d04021c4e
CRs-Fixed: 963275
(cherry picked from commit fe200c52491b12087752a46bc602288adaf26557)
This is a qcacld-2.0 to qcacld-3.0 propagation.
In present code, Host sets thermal power limits to 10dbm,
for both 2g and 5g, leading to connection failure.
Set Thermal Power limit to 30dbm for both 2g and 5g. So
that FW takes the default values from BDF.
Change-Id: I053108babfaa9ac2629cdb107ceb507c2f8891e5
CRs-Fixed: 1011361
(cherry picked from commit b25fb5987e792d286542e09f8d8fa30223115453)
qcacld-2.0 to qcacld-3.0 propagation.
There is a possibility of buffer overflow while processing
GET_CFG IOCTL to retrieve ini parameters from a global array,
because of invalid if condition.
Resolve buffer overflow issue by correcting if condition.
Change-Id: I8881abde0b543d7b1562968ecbb6240a0ca552a3
CRs-Fixed: 1000853
(cherry picked from commit 2dff47b5bc87559c430da20bf563975749b2a8cd)
qcacld-2.0 to qcacld-3.0 propagation
In SME, while processing set beacon parameters, free
dynamically allocated memory, once done with the it.
Change-Id: I281ef5eb9492fe75d639b2bef7ed588aacee8e74
CRs-Fixed: 974567
(cherry picked from commit feaa49e6b906f33a98a11f5ee35c947abe5d28bd)
qcacld-2.0 to qcacld-3.0 propagation.
Allow IPv4 and IPV6 offloads to FW by enabling ARP and NSoffload feature
by default even if it's not explicitly enabled in the ini file.
Change-Id: I9af928f5ea6e2b9589d3c8666abfa3927fe5e908
CRs-fixed: 1053887
(cherry picked from commit e0dba23a18a4484ae799e9db1eb867446e9ba0c8)
qcacld-2.0 to qcacld-3.0 propagation
Currently the following private ioctls are only supported on STA-type
interfaces: set_ldpc, get_ldpc, set_tx_stbc, get_tx_stbc, set_rx_stbc
and get_rx_stbc. Update the driver to support these commands on
SAP-type interfaces as well.
Change-Id: Ic135dcbd74918a2d27802e3edc34444545aa18ff
CRs-Fixed: 844097
(cherry picked from commit bf5ed2ca492bbe66b8825ad68ce975454f989dd6)
qcacld-2.0 to qcacld-3.0 propagation.
Added ini parameter for extscan so that scan can be aborted
if extscan ini is not enabled.
Change-Id: I7bfcd88901512de6b70af94d1ebd76894bb14755
CRs-Fixed: 927236
(cherry picked from commit 5af7ebadac8ea8ccd11af6c03d5d3a4cf209e85b)
qcacld-2.0 to qcacld-3.0 propagation.
If ACS is enabled in hostapd configuration,hostapd sends
a list of channels to HDD for softap bring-up. If hostapd
finds a invalid/unsupported channel in its channel list,
it will send a 0 for that channel. Since HDD always takes
the lowest channel as starting channel for scan, the scan
will always include 2.4Ghz channels even if channel mode
is set to a. Hence HDD should ignore these invalid entries
in channel list.
CRs-fixed: 959490
Change-Id: Iddaf6c4ba14e22b476f22f1f098faf726f4407ec
(cherry picked from commit 9f410939ff801316a153c44c603ce575fe6d15d5)
qcacld-2.0 to qcacld-3.0 propagation.
Log success or failure status whether disassoc/deauth sent successfully
over the air.
Change-Id: I527bd35546eb21157498f235fe74710dd3f7688e
CRs-Fixed: 1016866
(cherry picked from commit d081fef10c8440830cea8d6e598087d5021687ae)
qcacld-2.0 to qcacld-3.0 propagation
From Kernel-3.18 onwards pending scan request is handled
as part of NETDEV_DOWN event, by invoking the cfg80211_scan_done
callback which frees the scan request structure. To support this,
driver will not invoke scan_done_callback if interface is down.
In case, if interface down and up are called back to back there
is a chance that kernel frees scan request as part of NETDEV_DOWN
and after which before driver triggers scan_done_callback if
interface is made up, driver scan_done_callback is through its
execution and accesses the freed scan request results in kernel
panic.
To mitigate this, don't return from hdd_stop until scan request
is aborted. Though this fix is to avoid kernel panic due to 3.18
kernel specific changes, it is acceptable across all the kernel
versions.
Change-Id: Iba8bd7a32fac33e8a0c3eea293aad682a1105397
CRs-Fixed: 977264
(cherry picked from commit 153dba8b716c3d10a1745df6e2da09c0c05d9b01)
qcacld-2.0 to qcacld-3.0 propagation.
In current implementation, RA filter is enabled irrespective of the
BPF filter status. This change checks if BPF configuration in ini as
well as in target config is enabled, then RA will be disabled.
Change-Id: I85df0828af665d2bcc13c865b0ba40ebf882fffe
CRs-Fixed: 1058884
(cherry picked from commit 8dda6e83eb85ef9f0342ab23954e093c6dfebe2e)
qcacld-2.0 to qcacld-3.0 propagation
The new cfg80211 connect api 'cfg80211_connect_bss' takes
a new input parameter, the connected bss. This is required
for the kernel to map its current_bss to the bss on the
correct channel when more than one bssid, ssid pair is
present on different channels with the kernel. Without this
the kernel might report a wrong channel as the associated
channel. Hence add support in driver to use the new connect
api.
Change-Id: I1e5ded1b40ca324469917acebf17a03cc1e1c679
CRs-Fixed: 1008794
(cherry picked from commit fc06d173ce8155c1ee470f0a135490d42237d66e)
qcacld-2.0 to qcacld-3.0 propagation
Framework may initiate LL stat ops while roaming is
in middle, which in turn block the call or wait for
timeout hence introducing roaming delay.
This delay can be overcome by avoiding LL stat ops
if it is triggered in between the roaming.
Change-Id: Ie64c8c56f905cc297057e62b69c010cf1e0974ed
CRs-Fixed: 881429
(cherry picked from commit 125d2e3ce70d7829ed6b37ee032f6c2036974587)
qcacld-2.0 to qcacld-3.0 propagation.
Do not re-initialize periodic probe request timer if the calculated
value for "initScheduleTimeInMsecs" from max channel timer is zero.
Change-Id: I7cc03d84088c8c3f2b1e704c2e6c8c24c1a01189
CRs-Fixed: 909143
(cherry picked from commit 0d91c221310d699374b9d4373f7b5cd52ece3ac8)
qcacld-2.0 to qcacld-3.0 propagation
In AP+AP scenario, it is possible that hostapd can set default
key index before there is a session associated with pAdapter.
So save wep default key index in pHddApCtx and set it after bss start.
Change-Id: I1c27ad8984cb1ece266405fb5c427e59dd01db3a
CRs-Fixed: 938522
(cherry picked from commit d93be6957228143d757f299fcd32d2428860f9ee)
qcacld-2.0 to qcacld-3.0 propagation
In function "sap_select_channel" avoid selecting DFS channel if
DFS master mode is disabled.
Change-Id: I4b45401500db32f0677e5364e4cf415dca2ca23c
CRs-Fixed: 939153
(cherry picked from commit 0a1ecad5876e7526a9283cba331e22453e03490e)
qcacld-2.0 to qcacld-3.0 propagation
Currently if user space sends two different beacon
interval in AP+AP, driver is not updating correct beacon interval.
Beacon interval should be sent as per session.
Change-Id: I13653701e7ed6fb2eb643bbb8e20e7c0102c2ec2
CRs-Fixed: 1037455
(cherry picked from commit 183b9b33087f5afc925d5899b468450e88b97998)
qcacld-2.0 to qcacld-3.0 propagation
Currently there are no diag events to debug auth, assoc timeouts
and memory failure. Add such diag events which can be useful during
failures.
Change-Id: Iec4c2a9946fbef388959fdc796273944d3be8003
CRs-Fixed: 954888
(cherry picked from commit 96f330d11abe16a35c13a87346e8e60cbd0c7141)
qcacld-2.0 to qcacld-3.0 propagation
When deauth/disassoc is received from peer at the same time when
cleanup in progress because of disconnect from supplicant, there
is a chance that pHashTable can be NULL. Memory pointed by
pHashTable is freed during peDeleteSession, which is called during
cleanup. In dphLookupHashEntry, pHashTable is referenced without
any NULL check, which can lead to crash. Fix this by validating
pHashTable for NULL check.
Add a NULL check in _limProcessOperatingModeActionFrame before
referencing sta context to resolve potential KW issue.
Change-Id: I74d5c739cade19941320ee02eddc09e4fc74b105
CRs-Fixed: 898375
(cherry picked from commit b303090fde8d3a14dbf6f9c80d635e27718a583d)
qcacld-2.0 to qcacld-3.0 propagation
In CCX, BSS description is sent as part of beacon report. If BSS
description has random values, it leads to CCX certification failure.
Fix this by resetting memory allocated with zero. Also, reset memory
allocated to send beacon report to avoid this issue.
Change-Id: I445942b64ca9f382f8d24ca19665d6bda2341a80
CRs-Fixed: 931441
(cherry picked from commit c7a96bbd498d6d096f1dcade7fce0f6c1732248e)
qcacld-2.0 to qcacld-3.0 propagation.
In __iw_get_channel_list, driver populates valid
channel list from nv table.
Currently, the driver only populates 32 channels.
The driver should populate complete valid channel list.
Moreover, driver should not include DFS channels in channel list
if the device is not set to DFS_MASTER mode.
Fix these issues by returning all supported channels.
Change-Id: I4981941834f25b9d213c20715ca8237a4b885473
CRs-Fixed: 988849
(cherry picked from commit 7a4c5379f991bb4e72393e775f4664517d0a68aa)
HOST driver supports max LRO_DESC_POOL_SZ flows that can
be submitted to LRO manager. Currently there is no check
for flow greater than LRO_DESC_POOL_SZ and this is resulting
in invalid de-reference of hdd_lro_desc_entry.
Do not allocate LRO desc for flow greater than max range and
use normal rx path for flow greater than LRO_DESC_POOL_SZ.
Change-Id: I7f44c750afc78f5e044c9405dff30e729d3d28f3
CRs-Fixed: 1064624
(cherry picked from commit 2a8773e73b6c00edfcc621b4c1cba3bae677fb66)
qcacld-2.0 to qcacld-3.0 propagation.
In current driver, WE_UNIT_TEST_CMD has below problem.
- apps_arg[1] can have zero value and can lead to
buffer overead
Change the code to handle the number of args if user has
given zero.
CRs-Fixed: 1029540
Change-Id: Idc8e1d77d9623daeb98d0c4b7ad8a8d6cfa9c2d2
(cherry picked from commit 063a0db662927174d22af3b78402c63d7c388112)