During target attach procedure, there are a number of messages sent
to the FW. Some of these sends did not check return codes. Add
return code checks and treat the codes accordingly.
Change-Id: Ib515e040b6c7e2ecc23d2d422bb359e83342fcfa
CRs-Fixed: 2064904
If STA LTE antenna sharing is enabled sometime STA connect with NSS1
even AP is broadcasting NSS 2 capability if the chainmask received in
vdev start resp indicate 1x1. But the connection should be 2x2 and
after association the chainmask mgr will drop it down to 1x1.
Thus initiate connection in with 2x2 even if antenna is shared by LTE
during connection initiation.
Change-Id: Ia31d1ac3a0a5dcafe62e43f122fc81f655cdba63
CRs-Fixed: 2094177
Before populating the nss information into the session,
for a connection, check if HE is supported and then
populate the configuration.
Change-Id: I422e4c388bc71133fec15d053e713b9d10149b09
CRs-Fixed: 2099374
In some cases, some auto powersave timers are never initialized. Change
sme_ps_timer_flush_sync to avoid checking the timer state of such
uninitialized timers.
Change-Id: I0bccca6835238d1d69c71f39fc0ae5a8eee56d23
CRs-Fixed: 2089350
In WMI/WMA, data from event buffer from FW is used without
sanity checks for upper limit in multiple places. This might
lead to a potential integer overflow further leading to buffer
corruption
Add upper bound checks for max limit of event buffer (1536)
in all affected places to prevent the potential integer
overflow
Change-Id: I30826bb69939bcf02ac850bd2d22ada4795b3c98
CRs-Fixed: 2091584
Currently wow pulse configuration happens in wlan_startup. After
phase 1 initialization iface timer may expire and send deinit
sequences to shut down features like wow. If an interface is opened
again, triggering of wow pulse without configuring it again will end
up in failures.
Move the wow pulse configuration in phase 2.
Change-Id: Ic9e9a4f7988159bac7b6bf93c5f982ef23e852cd
CRs-Fixed: 2075936
Remove unused APIs from PLD. These APIs are already replaced by
WLAN common utility APIs.
CRs-Fixed: 2093939
Change-Id: I187826e7433e93361e1e4d42c081cc2f31b661b3
Currently In wlan_hdd_add_hostapd_conf_vsie api after checking the
length of element, return is being done because of which it is skipping
the remaining elements.
To fix this issue, don't return after invalid length, instead process
the remaining elements.
Change-Id: I1b370bc30a4400aa4fd5fce5783741272c64386a
CRs-Fixed: 2087787
In pe_shutdown_notifier_cb, lim timers are deactivated
inside the loop. Fix is to invoke lim_deactivate_timers
before the for loop. Move Open system auth api to
lim_process_auth_frame.c
Change-Id: I0f3cc58b5e73d73ae1a2a28ea0ce042e6c926207
CRs-Fixed: 2094532
Currently hdd_wext_state_t defines field statusCode, but this
field is never referenced and hence is obsolete, so remove it.
Change-Id: I482999414078d02a23b3b6255b0270c28e332191
CRs-Fixed: 2094517
Currently hdd_wext_state_t defines field isESEConnection, but this
field is only written in one place and never read, hence it is
obsolete, so remove it.
Change-Id: Ia110a11ae968b28b2c74e5b77b4bcca21f69a78f
CRs-Fixed: 2094516
The Linux Coding Style enumerates a few special cases where typedefs
are useful, but stresses "NEVER EVER use a typedef unless you can
clearly match one of those rules." The hdd_wapi_info_t typedef does
not meet any of those criteria, so replace it with a well named
struct.
Change-Id: I3f5d0faf689fac619643c78ca554bba3775bde04
CRs-Fixed: 2094514
The Linux Coding Style eschews the encoding of type information into
names, so rename struct beacon_data_s to align with that guidance. In
the process add an hdd_ prefix to avoid future namespace collisions.
Change-Id: Iae1cbbac2bee520ae305b027f68b5af1c4d94ea7
CRs-Fixed: 2093278
The cfg80211 get_station callback is not intended for use with
non-station device types. However, it is useful to expose aggregate
statistics for non-station type devices. Add support for returning
aggregate statistics when get_station is used with a soft access point
device.
Change-Id: I8ae32c307f241525a7d74467328d9d40dc805053
CRs-Fixed: 2077011
The Linux Coding Style enumerates a few special cases where typedefs
are useful, but stresses "NEVER EVER use a typedef unless you can
clearly match one of those rules." The hdd_scaninfo_t typedef does not
meet any of those criteria, so replace it with a well named struct.
Change-Id: Ia61b1f525a02e21a29e512dcb4c3678b730e6bd6
CRs-Fixed: 2093812
Reduce log flooding in __hdd_tx_timeout. The single __hdd_tx_timeout
error log printed by TX_TIMEOUT_TRACE should be sufficient to
identify the error. The debugging effort should use the driver logs.
This will ease debugging of other subsystems in the case that
the root cause is a system instability.
Change-Id: Iee3ba3c7d8d7dcd72a3a71ea4f8e4ae8d3bc17b6
CRs-Fixed: 2092183
qcacld-2.0 to qcacld-3.0 propagation
The variables used for cached ssid and authentication type will be cleared
after disconnection, hence user will get incorrect info from vendor
event after disconnection.
Use separate variables to save last ssid and auth info.
This is to fix issues of change I5b64d9942a54d35eac0f08b4d8fbed9d1d66a504.
Change-Id: Icc1a5d53e33d650726905e50e4846b77b10cf4ee
CRs-Fixed: 2098560
Even if channel is restricted to 20Mhz in a country code, the device
connect in 40-80Mhz.
Fix this by checking the max bandwidth supported by the country code
while calculating the CB mode.
Change-Id: Ibbf538309191b25fe944062ea618033c818095da
CRs-Fixed: 2095247
When hdd_get_tx_resource is called, if free Tx desc is lower than low water
mark, vdev->os_q_paused will be set as 1 and WLAN_STOP_ALL_NETIF_QUEUE will
be triggered after a while. Before WLAN_STOP_ALL_NETIF_QUEUE is triggered,
if ol_tx_flow_ct_unpause_os_q is called, WLAN_WAKE_ALL_NETIF_QUEUE will be
triggered and vdev->os_q_paused will be set as 0. In such case There will
be no flow control unpaused forever.
Tx should be paused by flow control when Tx desc is lower than low water
mark, and unpaused when Tx desc is bigger than high water mark or Tx is
already paused by flow control.
Change-Id: Ib60139fd94a4fb88c92a7f8aaf886ae9d3ca4c75
CRs-Fixed: 2089149
qcacld-2.0 to qcacld-3.0 propagation
Allow device switch to a different channel if the current channel is
congested, using the 11h channel switch announcement.
Change-Id: I1766785017e43f17cc800039b383ee5dabcd6ea5
CRs-Fixed: 2082632
Currently there are no phyerror event handler either in cmn or cld code,
idea was to implement all DFS code in cmn code. Before enabling event
handler in cmn code need more testing on all the platform which are using
cmn project to make sure not to break radar detection. Until then add dummy
phyerror event handler in cld project. This is mainly to prevent crash due
to watchdog bark because of unhandled event console logs.
Change-Id: I37d652537dec9f6e2de7fd0abf56d4058697313e
CRs-Fixed: 2097256
Few OEMs want DBS to be disabled for connections while
keeping DBS scan enabled.
Few OEMs want advance DBS scan features to be disabled.
Provide different value to gDualMacFeatureDisable INI item
to achive the goal.
Change-Id: Iddf5df23575a2f907bb8dbd0c37e03ff4ebbdea8
CRs-Fixed: 2068779
Register host trigerred self recovery callback from cds such that
self recovery can be trigerred from everwhere.
Change-Id: I67f529dd1585cff2c444412321f54a0aedcf6b97
CRs-Fixed: 2083092
Driver in FTM mode can operate even if the wlan interface isn't up.
If an user or an application tries to do IFF_UP and then IFF_DOWN
on the wlan0 interface, interface change timer kicks-in and starts
closing the modules. After which every command FTM commands
starts failing since the CDS modules are closed.
In order to mitigate don't run the interface change timer if
the driver mode is FTM.
Change-Id: I6b65a9956e33aeb619d2f1748f369c00ca75acab
CRs-Fixed: 2078323
On shutdown, there is a possibility of
protection_fields_reset_timer expiring after mc
thread is destroyed. This results in assert in
cds_linux_timer_callback.
Fix is to register pe shutdown notifier callback
to stop lim timers before destroying mc thread.
Change-Id: I6141b1f6fe93062cf96feb273e2ac943989f8df3
CRs-Fixed: 2083371
During con_mod_handler, cleanup of adapter is being done first
and then wlan modules are getting closed. Because of which NAPI poll is
still posting frames to a device/adapter which has been freed as part
of mode change handler, leading to a crash.
To address this issue first stop all wlan modules and then cleanup the
adapter.
Change-Id: I2fade59d1e4a27620cecadb91f69866e79c85612
CRs-Fixed: 2092132
Allow disabling randomization of NDI MAC address. This will allow
faster debugging and give OEMs option of disabling this if not
required.
Change-Id: Ie4f4c1dba2014be50c997715d65e3f97e5d5980e
CRs-Fixed: 2069470
qcacld-2.0 to qcacld-3.0 propagation
Add support to include only selective IEs in probe requests in
order to improve user's privacy.
Change-Id: Ib874af7ec2f5453282ffe0e8fc2e50934460b745
CRs-Fixed: 1086582
As beacon and probe rsp are not deferred in LIM the non-deferable
LIM msgs from WMA may get delayed due to processing of beacons and
probe responses.
To Avoid this post the non-deferable LIM msg from WMA with
high priority so that they can be processed before beacons and probes.
Change-Id: Ida7cb86be397a415893142a318b75b41c13578b5
CRs-Fixed: 2090173
When HT STA connect to VHT SAP, the STA is indicated as VHT capable
to firmware and thus MCS8 rates are used.
The reason is that the condition to set SMPS intolerance was added in
between the "if- else if -else" condition to determine ht and VHT
capability of sta. This resulted in else condition to execute for
peer STA which set VHT and HT capability from the psession and doesn't
consider capability of peer sta.
Fix this issue by reordering the if condition to set SMPS
Intolerance to firmware.
Change-Id: I483a5c44bc4beba0d03e1a80028993b30b47b108
CRs-Fixed: 2079727
Change "qcacld-3.0: Remove wext support for scan commands"
(I05ccc13d1b658e62b19a389e6a480707b5c446b9) removed most, but not all,
of the code that supported wext scan commands. Remove the remaining
wext scan support code.
Change-Id: Ib48c61956be1e90f981369083a910dba1bb5b77e
CRs-Fixed: 2093342
The Linux Coding Style eschews the encoding of type information into
names, so rename struct hdd_hostapd_state_s to align with that
guidance.
Change-Id: Ic520ecd0c6ba64428533aae6eef92bcb4d8daeaa
CRs-Fixed: 2093282
The Linux Coding Style eschews the encoding of type information into
names, so rename struct hdd_cfg80211_state_s to align with that
guidance.
Change-Id: I10342551370e1b81d49df734cf81a44501cb0bf7
CRs-Fixed: 2093281
The Linux Coding Style enumerates a few special cases where typedefs
are useful, but stresses "NEVER EVER use a typedef unless you can
clearly match one of those rules." The hdd_pmf_stats_t typedef does
not meet any of those criteria, so replace it with a well named
struct.
Change-Id: I6e1f205f36ca35d58f5f8846d95d76976266a8bd
CRs-Fixed: 2093258
Current driver is updating supported bands from service ready event
but in new platform service ready extension is carrying the updated
supported bands.
Overwrite supported bands which have been given through service ready
extension event.
Change-Id: I128133c494e3831a0994d79fa8cb9b46d4f1788a
CRs-Fixed: 2090909
Define HDD rate limit loggign API such that logs
can be rate limited on need basis.
Change-Id: If8dcf48ad9381b5b10df064cfe189bcb932f924c
CRs-Fixed: 2083919
Add missing qdf_spinlock_destroy() to destroy spin lock debug cookie
for SLUB build. For normal builds, qdf_spinlock_destroy() is a NO-OP
function.
Change-Id: Idccdc9f7acaea785a600e14304368f53ff7e17d7
CRs-Fixed: 2077964
The Linux Coding Style enumerates a few special cases where typedefs
are useful, but stresses "NEVER EVER use a typedef unless you can
clearly match one of those rules." The hdd_stats_t typedef does not
meet any of those criteria, so replace it with a well named struct.
Change-Id: Ie4340278dc449f7d0bd65be726a8d573506e4f1a
CRs-Fixed: 2092843
The Linux Coding Style enumerates a few special cases where typedefs
are useful, but stresses "NEVER EVER use a typedef unless you can
clearly match one of those rules." The roaming_info_t typedef does not
meet any of those criteria, so replace it with a well named struct. In
the process remove the unused roamingEvent that it contains.
Change-Id: I0bf974fcbe0a591973610eef27acc3da07071a57
CRs-Fixed: 2092842
There is a buffer overflow while using sscanf in setrmcenable
and setrmcactionperiod APIs.
To resolve this, use sscanf according to buffer length.
Change-Id: I91b0c36cb8c67d45afb0b95ac944f9e87187f85a
CRs-Fixed: 2086337
Introduce lookup_threshold_5g_offset in WCNSS_qcom_cfg.ini
which will let the user to configure separate threshold for
5G band using this offset
Change-Id: I4975f74095a5fec0657666ba864ee436cbaed604
CRs-Fixed: 2093368
When replenishing Rx buffers driver updates the address of the
buffer and the index of rx buffer in rx ring to the firmware.
Make sure alloc index write is reflected in the memory before
FW polls the remote ring write index as compiler can reorder
the instructions based on optimizations.
Disable compile time reorder by adding a write memory barrier.
Change-Id: Icb37598e6c36b4a128b1bcd91bfb9d643bf083e2
CRs-Fixed: 2084210
Add changes to fix compilation warning related to
frame-larger-than flag. Value of this flag is set by
CONFIG_FRAME_WARN in kernel config.
Change-Id: I0d4d55c141572c9da3a459e79073b99fc5d6ea67
CRs-Fixed: 2035710
Currently only one connection information corresponding to the
provided mode is deleted and restored, which causes channel
selecting failure in DFS testing with AP+AP concurrency mode.
When radar is found in AP+AP concurrency mode, a new valid channel
should be selected. Before selecting the channel, all existing
connection information of SAP mode should be deleted, otherwise
no valid channel can be selected.
All the connection information corresponding to the provided mode
should be deleted and restored.
Change-Id: Id363dbb2c31485fefcd6915696060923063079bb
CRs-Fixed: 2078021
Take wake_lock for rx packet processing in hdd_rx_packet_cbk
only in authenticated state to avoid taking lock for sta cached_bufq
for which the wake_lock is acquired for all packets one by one
till entire flush duration.
Change-Id: Ia69381a7406a5a475ed07f73f3ea0edf4b3715be
CRs-Fixed: 2081963
Reset bg_scan_client_bitmap after disconnection so that the
roaming module does not keep getting the scan notifications
for other scans after disconnection
Change-Id: Ief8333f9802868d63c22977640bea49a2c69f4a8
CRs-Fixed: 2093219
Fix the error print: 'qdf_trace_msg_cmn: Invalid index - -1'. Move the
qdf print registration to early in driver initialization.
Change-Id: I338e6615d7f76110df762d725f535fb7493cb1cd
CRs-Fixed: 2092806
QDF Runtime PM lock APIs semantics are changed. Incorporate the
changes done in QDF for all the Runtime PM lock APIs.
CRs-fixed: 1116549
Change-Id: Ia701378031b7e9c01583eaef403e1219fdce47e3
The Linux Coding Style enumerates a few special cases where typedefs
are useful, but stresses "NEVER EVER use a typedef unless you can
clearly match one of those rules." The connection_info_t typedef does
not meet any of those criteria, so replace it with a well named
struct.
Change-Id: I414f8d1949807f1bc0cda72971fab5696d1d1860
CRs-Fixed: 2092786
The Linux Coding Style eschews the encoding of type information into
names, so rename struct hdd_tx_rx_stats_s to align with that guidance.
Change-Id: Idb6f8a6a2aa7704dedefdb78689c966babab8c42
CRs-Fixed: 2092737
The Linux Coding Style eschews the encoding of type information into
names, so rename struct hdd_ap_ctx_s to align with that guidance.
Change-Id: I68fb6fb0a2e62d1462b04d05e5232167ce423754
CRs-Fixed: 2092736
The Linux Coding Style eschews the encoding of type information into
names, so rename struct hdd_context_s to align with that guidance.
Change-Id: I590cc8751873479a098f90b501c401c4fb4010c4
CRs-Fixed: 2092735
The Linux Coding Style eschews the encoding of type information into
names, so rename struct hdd_adapter_s to align with that guidance.
Change-Id: I2a43671d9233f596b4e10eda4ad8641d7311fad1
CRs-Fixed: 2092733
Currently, HDD keeps a ponter to the HIF target_hw_name, which it gives
to userspace upon request. If HIF is closed, this memory is cleaned,
leading to a use-after-free. When the HIF target_hw_name pointer is
received by HDD, store a duplicate instead of the original string.
Change-Id: Ic27f00937cd600ed04908f3ba0f83ede54bc31eb
CRs-Fixed: 2079231
WMI_CLEAR_LINK_STATS_CMDID can cause firmware crash if vdev_id is invalid.
Add staId, i.e. vdev_id checks to sme_ll_stats_clear_req() and
wma_process_ll_stats_clear_req().
CRs-Fixed: 2078391
Change-Id: Ic713b17aebeb89bc0ab69c2e4040d9018d3dc095
The API hdd_update_tgt_cfg decides whether to create a new PDEV
or use the existing one. In this case, the driver is
de-initialized/re-initialized followed by the cfg download. The
FW then generates SYS_READY and the control comes to this function.
Since there is no check for monitor mode the second PDEV is created.
FW seems to provide phy_id = 0 and expects the host to use the
corresponding pdev_id at various places during initialization.
Now here phy_id = 0 and pdev_id = 1, thus initializations fails.
To resolve this issue add a check for monitor mode in hdd_update_tgt_cfg
function and use the same pdev_id.
CRs-Fixed: 2087541
Change-Id: I9dd6449b1e81b6bb218d21c07ca0f5335067865d
VHT RX LDPC capability depends on both INI config and HW capabilities.
Current logic does not populate HW capability in a correct way. HW RX
LDPC capability is set as a bitmask of bit 4 instead of boolean value
while INI config is value of 0 or 1. Bitwise AND with HW cap and INI
config always creates a result of 0, which leads to wrong RX LDPC field
in VHT caps IE.
Fix is to populate HW RX LDPC cap as a boolean value and advertise VHT
RX LDPC capability when both INI config and HW capability are set to 1.
Change-Id: Iabf83f74d9bfc2bf7d958ca3a08e9e6090ac7fb8
CRs-Fixed: 2060216
qcacld-2.0 to qcacld-3.0 propagation
Randomize probe request's source address and sequence number to
improve user's privacy.
Change-Id: Ic367ce4578e65faf49e8092f0f8cce057eead728
CRs-Fixed: 1085995
A list of ipa tx_desc is created to have a one-to-one mapping between
tx_desc from ipa driver and tx_desc in wlan. The list pool size is now
set to IpaUcTxBufCount, which is IPA wlan FW tx comp ring size and is
more like a HW resource. But the list is used only for SW MCC TX path.
Fix is to define a new INI to set hdd_ipa_tx_desc pool size. But real
size is minumum of this INI and the global tx_desc pool size.
Change-Id: I3216a4c14ac624cc313d11226909efd4f63841d0
CRs-Fixed: 2076672
Currently cfg update notification is posting every message to WMA.
To reduce message posting load only post target interested messages
to WMA as part of cfg update notification.
Change-Id: I054d684b671d33f2b1ea73062b82af8862de0ab2
CRs-Fixed: 2090997
While resetting connection information, sta id is set to 0,
which is a valid value, leading sta id to hold a valid data
though connection information is reset.
While resetting connection information, set sta id with
HDD_WLAN_INVALID_STA_ID(0xFF) to make sure sta id holds invalid
data.
Change-Id: I7d438f323959a5fb6d3a232a88a8f2ca3c0e0c56
CRs-Fixed: 2040296
Currently both unicast and multicast counters are updated
when unicast packet is received if a multicast IP packet
is sent using a unicast MAC address.
Fix is to not update multicast counters when unicast packet is
received.
Change-Id: I6907a0cf51525af1ba6fb7e7be472eff72aaa779
CRs-Fixed: 2052905
Remove the channel avoid event processing in wma as the
event processing handled by regulatory component
Change-Id: Ifa0e340c6341b21c192066c8c6eb14418b041062
CRs-Fixed: 2080241
Replace the channel avoid event data structure with the one defined in
regulatory module, remove the HDD callback as regulatory module is
consuming the FW event now, add logic to notify user space of channel
avoid event.
Change-Id: I6b1b986837ab89503a7e0469619193b0af8127da
CRs-Fixed: 2080241
As soon as EAPOL start happens, supplicant start authentication
timeout as 70 sec to complete authentication.
Driver should not issue disassoc before this time expires.
Fix this by increasing authentication timeout for EAPOL to 75 sec
CRs-Fixed: 2039542
Change-Id: Ib07cff669099563bc7ba87367cf88da5cc6d0fd2
Hold wake lock in driver for SAP client disconnect notification to
user space inorder to avoid hostapd and driver going out of sync.
Change-Id: If81cf836b8fc047731735aa28831d1efa2f4e7b2
CRs-Fixed: 2084282
To resolve one of IOT issues, introduce INI called
"disable_high_ht_mcs_2x2" which will disable high MCS indices for
2G STA case based on INI value.
Change-Id: I60c5edd89a42f74c0f439fe6a9ab0c75373622b2
CRs-Fixed: 2087438
wma_vdev_find_req will remove the request from queue if found it. If
remove the request when peek it, then wma_vdev_find_req fail and memory
leak happens. The change for cleanup qdf list is for NULL mac_ctx case.
Solution is revert previous change and move mac_ctx checker back.
Change-Id: I06deedaf9f8a3c788621d8468e00d4d4852e2d9f
CRs-Fixed: 2090051
Presently, Host fails to report valid actual link speed
(gReportMaxLinkSpeed=0) to the upper layer when firmware
reports legacy link speeds as Host fails to update legacy
bit in rate flags, reported to upper layer.
To mitigate this issue report rate flags with legacy bit set
on receiving valid rates from firmware and if MCS index is
invalid, as WMA fails to set valid MCS index for legacy rates.
Change-Id: I0a542e8aa56eb18e653aad30c1bec13f133d267c
CRs-Fixed: 2089469
SAP selects different channel between cld2.0 driver and cld3.0
driver in ACS mode, which leads to confusion.
In cld2.0 driver, channel with the least weight is the first
choice, and non-overlap channel will be selected only when
overlap channel is disabled and its weight is not bigger than
the first choice channel.
In cld3.0 driver, non-overlap channel will be selected when
overlap channel is disabled.
The behavior in cld2.0 is more reasonable. Make cld3.0 driver
follow cld2.0 driver.
Change-Id: I6243ace8db7314c698a9b554e65794d2ee66e555
CRs-Fixed: 2086287
In LTE Coex test, firmware will report the unsafe channels, and if sap
runs on these channels, driver goes through channel select process and
restart. There are some situation, in channel select process, SAP can't
find the proper PCL channel lists, and fail to restart.
This fix is to let SAP continue to pick up a safe channel from ACS
range when fail to get pcl.
Change-Id: I54145547d2b161aec09caa2dabd4d4b52aa15f03
CRs-Fixed: 2064534
For fatal events , driver sends EVENT_WLAN_LOG_COMPLETE
to userspace. But there can be multiple events for each
ring id like connectivity, driver , frimware, wakelock etc.
Cnss diag has to trigger copy of pkt log to /sdcard only for
one bug report, so send ring id in log complete event so
that it can trigger copy for driver ring id.
Change-Id: I0776775ab81fd2920ea440b773b146b6af61e434
CRs-Fixed: 2028068
Memory for encrypted auth frame is allocated based on macro
SIR_MAC_AUTH_CHALLENGE_LENGTH. SIR_MAC_AUTH_CHALLENGE_LENGTH
was updated to 253 from 128. Auth failure is observed on
receiving challenge text of length 128.
Fix is to use length based on the challenge text received.
Change-Id: I5ba5748c9ae00b61743883862ca884ac1134da15
CRs-Fixed: 2084599
When wma_hold_req_timer timer timeout, the timer is not destroyed
and thus timer leak is seen while unload.
To fix added destroy timer before freeing the hold req.
Change-Id: I532975fe13057d96ac924c58d0f42a0010a00a97
CRs-Fixed: 2084993
While processing of frames received before peer is registered in process
context, tcp_v4_rcv() is called which takes a spinlock and in between the
processing before spinlock can be released, it is getting preempted by
hif_napi_poll() as it gets executed in softirq context. It tries to take
the same spinlock in tcp_v4_rcv() resulting in deadlock.
Do netif_rx_ni() for frames received before peer is registered.
Change-Id: I6228984f209bb9312ed9d8f3937d6036918ff750
CRs-Fixed: 2034244
With TDLS enabled and CONVERGED_TDLS_ENABLE defined, wlan_hdd_tdls_init()
will be bypassed by tdls_umac_comp_active flag.
While, in wlan_hdd_tdls_exit(), similar check missed, which causes
uninitialized delay_work be flushed. This leads to final crash.
Check tdls_umac_comp_active flag in begining of wlan_hdd_tdls_exit()
to avoid crash.
CRs-Fixed: 2087653
Change-Id: I0d9458683f092456e54ccf42988d4f8534922947
It is reported by Static Analyze tool as buffer overflow when call
into function ol_txrx_bad_peer_txctl_update_threshold, because
WLAN_WMA_IEEE80211_MAX_LEVEL is defined as 5 but TXRX_IEEE11_MAX
defined as 4, so level 4 will pass as max index value which is buffer
overflow.
Add TXRX_IEEE11_AX so TXRX_IEEE11_MAX aligns with
WLAN_WMA_IEEE80211_MAX_LEVEL.
Change-Id: I49fe348f1071648d86e456c6df63738ec507dd6c
CRs-Fixed: 2058227
qcacld-2.0 to qcacld-3.0 propagation
Add ini option to enable/disable action frame based channel switch.
Change-Id: I340464a18ef0b5cf09f481a23b01edcf04904e34
CRs-Fixed: 2082563
Allocation of memory for assoc resp fails
when frame length is zero and error message
is displayed.
Fix is to allocate memory only when frame length
is greater than zero.
Change-Id: I6c3a457b7eb9d49fa67bee7570594dd81c2eb3d7
CRs-Fixed: 2060384
Buffer overflow in ConvertQosMapsetFrame function
when num_dscp_exceptions value is less than 16.
Fix is to return from function if num_dscp_exceptions
is less than 16.
Change-Id: I2fcce60b7fe5e988348cee786e9a4d493d9512fe
CRs-Fixed: 2086305
The target_delta and bus_delta combined with target_tx_credit
to fulfil the credit function of host.
A global lock is needed to ensure reenterable.
Change-Id: I71c006ccfe05b442706283490cd7bba4cc8a6f5f
CRs-Fixed: 964530
Constant value 4294967295 is recognized as an signed integer
in ISO C90. Change the definition of the constant value to
4294967295UL to fix compilation error where need a unsigned
value as a input parameter.
Change-Id: I02f67b6351c53b5e3331ce668059c4c61953a8d3
CRs-Fixed: 2023140
When doing HDD context check in ipa_init, the CDS is not yet
loaded. So remove the CDS loading check in ipa_init.
Change-Id: I45843c406f280cfbf932bc489f9051c2300b77ba
CRs-Fixed: 2070428
In MCC case when vdev pause queue is full, driver fails to tx and pkts
are dropped. ipa tx_desc only replenishes to ipa driver. This leads to
holes in hdd_ipa_tx_desc free list and list will be drained out causing
unexpected packet drops.
Fix is to replenish tx_desc to wlan driver maintained free list as well
using ipa registered skb free callback.
Change-Id: I1ae8570816efd822d5ced2c6383a03c56b12ec89
CRs-Fixed: 2073444
csr_roam_roaming_offload_timer_action() is used only when
WLAN_FEATURE_ROAM_OFFLOAD is enabled. But it is defined out of
WLAN_FEATURE_ROAM_OFFLOAD. So there is a compilation error that
csr_roam_roaming_offload_timer_action() is defined but not used when
WLAN_FEATURE_ROAM_OFFLOAD is disabled. Add fix to resolve this issue.
Change-Id: I31036a91df3d2799d53fb64f73dbae847bee97bf
CRs-Fixed: 2023165
Since wifi chip do not supprot LFR3.0 on SDX20, disable LFR3.0
feature in Kbuild, and fix a compilation error.
CRs-Fixed: 2009403
Change-Id: I16eb3bd68d5564801be9cbcf9db1386cb0e3953b
Add interface information when sending P2P listen offload stop
event to upper layer so that the event can be processed on the
correct interface.
Change-Id: I7aac52552e9277aff838d9bfef01201af48773c9
CRs-fixed: 2088732
eWNI_SME_HO_FAIL_IND is defined under WLAN_FEATURE_ROAM_OFFLOAD, but
it is used out of WLAN_FEATURE_ROAM_OFFLOAD, it will cause compilation
error. Add fix to resolve this issue.
Change-Id: I7dda8806ecadc4dd8c8c1d7f14cc7bc21bdc2bf7
CRs-Fixed: 2023694
If TDLS disabled at the build level, it triggers
build failures in some of the projects, which does
not support TDLS feature.
Restructure the TDLS function to avoid build
failures, when TDLS is not enabled.
Change-Id: I3b63546f22d0187fb42d400fd7e15ff7a3d64653
CRs-Fixed: 2056022
Check if wpa index for the OUI retrieval is
going beyond the limit of the array and return
Change-Id: I040246d7a7c2ca387282dc4d86ffdbdf34007323
CRs-Fixed: 2085702
Move the log messages to appropriate log levels so that
the console does not get a huge spam of unnecessary logs
Change-Id: I8e140039a3a483953606558e102db23ab8b0096a
CRs-Fixed: 2043741
On receiving auth resp with algo not supported status
code, open system auth is sent to firmware. There is
a possibility that AP does not receive ack sent by DUT
and retries auth frame. The retry frame could be received
at host after open sys auth req is sent to firmware
resulting in auth failure.
Fix is to send open system auth frame after timer of
15msec expires.
Change-Id: I6bc7097ec7568fc65a379c7c31c96d5874f1e216
CRs-Fixed: 2075272
When FW support SDIO_REDUCE_TX_COMPL_FW_ACK feature, WLAN host can
enable tx_free_at_download feature to increase efficiency further.
CRs-Fixed: 2078825
Change-Id: I542e51254ca5c0a6c51f7479e0cc1cdb12a077fa
Currently flush power save command logic is sending power save
enable for all VDEVs. FW does not support power save for SAP
VDEV hence add check to make sure to flush power save command
only for INFRA STA VDEV.
Change-Id: I8f162535f8a4c3b66b6ed136c3c0d599c7dc0dba
CRs-Fixed: 2084683
qcacld-2.0 to qcacld-3.0 propagation
Currently for SDIO implementation, tx comp indication is
suppressed and tx_desc is freed when htt download is done.
This leads to invalid tx_desc being referenced when pktlog
indication handler wants to collect TX-ed tx_desc information.
Fix consists of two parts:
1. When pktlog is enabled in ini, enable tx comp indication
handler just like PCIe and USB. tx_desc is still valid when
pktlog indication comes.
2. Check vdev pointer embedded in tx_desc structure. vdev
pointer is set when tx_desc is allocated and set to NULL when
tx_desc is freed. This guards against invalid tx_desc_id
from firmware.
Note that performance drops should be expected when
pktlog is enabled on HL platforms.
Change-Id: Iba9b8323b4a6e2ae17e36768bda3511f52236a2c
CRs-Fixed: 2034996
Currently, a wakelock is acquired before vdev start is sent to firmware
and released after a vdev stop response is received. In some cases, this
can cause a race condition where the device will power collapse before
the association process is complete. Instead, release the wakelock after
either vdev up or vdev down is sent to firmware, ensuring the entire
association process is protected.
Change-Id: Iab1a241f1c5810d9f71bfd86e1e8036847ebf602
CRs-Fixed: 2082928
Change the log level from ERROR to INFO
for hdd_rx_packet_cbk log to prevent
packet information from flooding on the
kmsg.
Change-Id: I27bfcc708740f50c4b15d72b89176af2ce27f6fa
CRs-Fixed: 2082577
Currently there is no support to configure SMPS parameter
from host, add support to configure SMPS parameters using ini.
Change-Id: I6f8273ffed39a0b95c31f1647e86406b870165f2
CRs-Fixed: 2080571
Run through the entire peer_id_to_obj_map array and if any peer_id's
peer entry points to a particular peer, change it to NULL. Calling
this routine before deleting the peer ensures that subsequent peer_unmap
events will not access a peer object that is deleted.
CRs-Fixed: 2027846
Change-Id: I05089bece20ea070694f243feb06d222f8e50ac6
CFG80211_REMOVE_IEEE80211_BACKPORT is added to indicate
backport of Change-Id: 57fbcce37b
from upstream 4.7 kernel to 4.4.
Hence add this flag CFG80211_REMOVE_IEEE80211_BACKPORT to
support this compilation. Also introduce HDD_NUM_NL80211_BANDS.
Change-Id: I60a15a1273f939a0a288d08d03ccb5bf1bdcc429
CRs-Fixed: 2087917
logical not is only applied to the left hand side of this
bitwise operator [-Werror,-Wlogical-not-parentheses]
(!(ies->RSN.RSN_Cap[0] >> 7) & 0x1)))
^ ~
csr_api_roam.c:14617:6: note: add parentheses after the '!' to
evaluate the bitwise operator first
(!(ies->RSN.RSN_Cap[0] >> 7) & 0x1)))
^
( )
csr_api_roam.c:14617:6: note: add parentheses around left hand
side expression to silence this warning
(!(ies->RSN.RSN_Cap[0] >> 7) & 0x1)))
^
( )
Change-Id: I489eba6a6265778346bb3b20832f92774a2d5e0e
CRs-Fixed: 2087302
Returning a negative value from the API results in the failure
on unsupported platform.
CRs-Fixed: 2082239
Change-Id: I75b14b81eaa00d53784a6deb90b99666e28b164d
MBO ies sent in tail buffer of beacon params
structure are not sent in beacon template to
firmware.
Fix is to add MBO ies in beacon template sent to fw
Change-Id: I3987bd431f9a21218650499afa16eac2b59e6486
CRs-Fixed: 2087752
When HTT attached, driver allocates DMA buffer to record each RX ring
entry, with element size - target_paddr_t, which is bus size, and may be
different from kernel's physical address size.
While in htt_rx_detach, size of qdf_dma_addr_t used for buffer free.
In case kernel built as 64-bit, and bus size as default 32-bit,
it will crash when free.
Use same element size to avoid it.
CRs-Fixed: 2087592
Change-Id: Iabe95f92ea82b736213a8b81453163229b2a3a3b
In STA+AP concurrency case, driver fails to receive PNO STOP
indication from the upperlayer and thereby driver fails to send
same indication to FW, leading to a FW crash.
To mitigate this issue, during STA session close, issue PNO
stop indication to FW, if PNO is in progress.
Change-Id: If30e631fc5e8151cd5ecc66ff1d48627123a0a1e
CRs-Fixed: 2059793