Add WLM setting to "csr_get_config_param"
to avoid the setting lost when set back by
csr_change_default_config_param.
Change-Id: I539a4a87f55365c701a7149784e92c60fb6c5383
CRs-Fixed: 2223340
The change for the CR 2211133 caused compilation issue in LE
branches. This reverts commit with
change Id-I45943ae76d8fcf7b53e1f064c462d01cd6d00dcf
Change-Id: I069f1a4ae8ad320f5a073ee072dd772e05c5fc5d
CRs-Fixed: 2222536
Currently, sta's adapter.rssi does not reset when disconnect
with the previous ap and for new connection there might be no
valid rssi so it will get 0 when hdd_get_station_statistics_cb
or hdd_get_rssi_cb is invoking. Then it uses the previous ap's
rssi for the new conneciton.
Per the code logic, it is ok to set adapter.rssi with 0 value.
Because it invokes hdd_get_rssi_snr_by_bssid to get the
rssi & snr when issue happens.
Change-Id: I737cfcf16d58501546f2fceab06ed1e5418e7b06
CRs-Fixed: 2199782
Since WLAN host driver is regulatory offload design,
regulatory notifier from CORE should always be ignored.
Change-Id: Iaf23bdd1606e84cb309101246088ce6d506aa78b
CRs-Fixed: 2215884
The driver contains considerable debris from the obsolete WOWL
messaging, so clean it up.
Change-Id: I432f7fc1567b0aa31a7be758c05f2213340baed0
CRs-Fixed: 2223859
While handling a multi-segment TSO packet, there is a race condition
where, if tx complete arrives fast enough, the un-sent TSO segments
may be lost forever and a previously sent segment would be attempted
to be sent over.
Fix the race condition. Dont use the segment after send to go to the
next one.
Change-Id: I4abd9d26f50c749141925894a8845cf82df4d222
CRs-Fixed: 2168778
Currently non-linear, non-tso TX data is not handled correctly,
only the non-tso, single linear data is supported. the frag paged
data in skb is missed while packet length for HW access
is entire packet length, HW DMA failed.
temporarily to linearize skb so that non-linear data could be TX
correctly.
Change-Id: Ic0f2b7a0b021ca190c870551a66181f50ae72c65
CRs-Fixed: 2180318
Suspend/Resume unit test IOCTLs and other unit test features are only
enabled in defconfig debug builds and always disabled in production
builds. Add CFG INI item to disable these test IOCTLs even in defconfig
build such that by default on all build combinations unit test IOCTLs
are always disabled.
Change-Id: I71a63d2b85800b630d7c18eb77a3cffddcd66fbb
CRs-Fixed: 2221874
Secondary bit map starts with color 32, So current color minus 31
will shift color bit beyond the expected position which is 0th,
Fix it by subtracting with 32 instead 31.
Change-Id: I7ede16faee129c42c71d490f653244398061a8b6
CRs-Fixed: 2222003
In sme_qos_del_ts_req, there is a chance that driver can access
del ts req pMsg even after free. In umac_send_mb_message_to_mac
driver frees pMsg if there is some failure. But driver still
tries to access pMsg in sme_qos_del_ts_req even if umac_send_mb_
message_to_mac returns failure.
Access pMsg only if umac_send_mb_message_to_mac returns success
to avoid this use after free issue.
Change-Id: I3638a38746b9cd917e01a7ff6f38430344e6e78d
CRs-Fixed: 2214718
The function wma_del_tdls_sta is used to process delete sta
request from UMAC in TDLS. peerStateParams is a pointer to the
structure tTdlsPeerStateParams. The memory allocated for
peerStateParams is freed in the call to the function
wma_update_tdls_peer_state(). When peerStateParams is used to
access vdev_id again after free, then a use after free case will
occur.
Retrieve the vdev_id value from the del_sta structure that is
passed into wma_del_tdls_sta initially.
Change-Id: Iad7edf87058bfc20aadc0e72d474b1c330790512
CRs-Fixed: 2216242
If connection is in progress and new connection req is
received from supplicant, hdd tries to disconnect the
current session and post force disassoc command and wait
for it to get completed. If the current ongoing connect
operation fails and this force disassoc is processed as
sme session is in disconnected state it is silently
dropped and thus there is no event sent to the HDD
to stop the wait for disconnect and HDD wait for 5
sec before returning connect failure.
Fix this by Calling disconnect handler if, disconnect
with force dissoc is called in disconnected state
Change-Id: I3a78308b54fb048fba5a6aed3d8e8b193c371647
CRs-Fixed: 2223313
There is a chance that kernel can trigger suspend while
connection in progress. If driver allows this suspend, this can
result in fw panic.
Specific scenario:
If driver allows suspend to go when it waits for probe response,
fw least expects suspend indication as fw is in vdev start state.
This unexpected suspend indication in vdev start state can cause
fw panic.
Hold wakelock till the completion of association to fix this issue.
Change-Id: I168ead2ab1ef4fff1d9af3f3142c82536c3f4798
CRs-Fixed: 2217140
qcacld-2.0 to qcacld-3.0 propagation
Discard the original wmi interface:
WMI_PEER_ANTDIV_INFO_REQ_CMDID/PEER_ANTDIV_INFO_EVENTID,
replace with the new one:
WMI_PDEV_DIV_GET_RSSI_ANTID_CMDID/WMI_PDEV_DIV_RSSI_ANTID_EVENTID
to support chain value along with corresponding antenna info.
Change-Id: Ie9ea9d160e1ac1e2e65de422c85989159fb5a556
CRs-Fixed: 2005820
When CLD3.2 driver is setting pdev burst mode to FW, 3
possible values are supported:
0: disabled
1: enabled for legacy burst
3: enabled for SIFS burst
but the iwpriv command handling code only supports setting
0 or 1 to FW.
Add value checking for WE_SET_BURST_ENABLE to support setting
3 to FW.
Change-Id: I35506b83d584f6e8d066adfc43df8dd03ce54661
CRs-Fixed: 2214992
When CONFIG_MOBILE_ROUTER feature is enabled, FEATURE_WLAN_TDLS is
turned off. As a result, compiler complains no prototype for
lim_disassoc_tdls_peers error.
Fix is to define lim_disassoc_tdls_peers as static inline when
FEATURE_WLAN_TDLS is not defined.
Change-Id: Idad1f7d2e27853307750fcc7ffbe7ab1e3504c3b
CRs-Fixed: 2215100
Currently Kbuild unconditionally sets -DHAL_SELF_STA_PER_BSS=1. There
is only one place where this macro is referenced, and it actually
requires that the macro be set for the driver to work. Since this
logic isn't really conditional, remove the conditional compilation.
Change-Id: I09a03339df086146b81b3012fb281e166fccd5da
CRs-Fixed: 2221852
Macro WLANTL_DEBUG is currently used to define some SAP debug
counters, but these counters are unused, so remove this obsolete code.
Change-Id: Ie7d976efcb5fb335b3f60a5af48a70dd214b3bd0
CRs-Fixed: 2220915
Currently a set of ANI_COMPILER_TYPE macros are checked against, but
other than that they serve no purpose. As part of ongoing Kbuild
cleanup remove these obsolete macros.
Change-Id: Ia112d7d5ae8d12eae46144b53addc8ad54393bba
CRs-Fixed: 2220285
The routine wma_extscan_change_results_event_handler sends the ext scan
results to upper layers. This contains the bssid info, rssi values of
different APs that are scanner. If the num_rssi_samples is negative or
greater than UINT32_MAX,then an OOB write could happen.
Add check to ensure rssi_num is not negative or exceeds UINT32_MAX.
Also make sure the numap value is not negative.
Change-Id: If82c4fd1193c45d38bd4495c187a406deb25acad
CRs-Fixed: 2205957
After SSR, FW clear its txrx connectivity stats.
In host, as adapter is intact, host connectivity
stats counts are still available. Now if the set
stats command is used again, then host increments
its counts start from its last saved value, i.e.,
count before SSR, and FW increments its count from 0.
This sends a mismatch of packet counts b/w
host and FW to framework that creates ambiquity.
To address the issue, reset the host counts so that after SSR
both FW and host start increment their counts from 0.
Change-Id: I11f849d6f00abe11f3bb8947cc81e47a3bc004fa
CRs-Fixed: 2202890
Currently pdev pointer is freed prematurely in ol_txrx_pdev_pre_detach
but the same pointer is used when ol_txrx_pdev_detach is called. This
may lead to invalid pointer dereference issue.
To fix this issue, free pdev pointer in ol_txrx_pdev_detach after
ol_txrx_pdev_pre_detach is called.
Change-Id: I089d70842b90b568ee8a38c6ed56f5418df7303d
CRs-Fixed: 2207417
In lim_set_rs_nie_wp_aiefrom_sme_start_bss_req_message, length passed
to unpack WPA IE is length of WPA IE + 2 bytes extra
(rsn_ie->rsnIEdata[1] + 2) - 4. So in case of only WPA IE is present
in assoc request, the WPA IE parser will try to validate the buffer
beyond the WPA IE and might fail as the extra 2 bytes of buffer might
contains some garbage value.
Pass appropriate length to unpack WPA IE.
Change-Id: Ifad6fabf701a82abd4234569d108b4172adf2bcb
CRs-Fixed: 2217455
qcacld-2.0 to qcacld-3.0 propagation
Use qdf_do_div() for 64 bit division, because '/' can't be used for
64 bit division on arm32 platform.
Change-Id: I19a1db8adbc1fe7acaee0ec824f670b67284f628
CRs-Fixed: 2155143
Fix integer underflow in csr_update_fils_params_rso as this may
cause buffer overflow.
Change-Id: I25b31f5c0f207be09ac30d5f95911d3866d12d66
CRs-Fixed: 2204872
Several packets are sent to firmware in htt_htc_attach_all(), back to
back. However, if one of the latter packets fails to send for some
reason, the previous packets are not flushed. This leads to a number of
leaks under error conditions.
If a packet fails to send in htt_htc_attach_all(), flush the endpoint
before returning failure to the upper layers.
Change-Id: If9b33a645f7bcc77442e18566525ae57b544f1a0
CRs-Fixed: 2219137
The definition of module_param_call() was changed in 4.15 and
in order to have module params that work on the kernel both
before and after that change switch to using module_param_cb()
since its definition has not changed.
Change-Id: I4af7c802ae62041636eda3047805630a16490e75
CRs-Fixed: 2193703
Max len of CSR_DOT11F_IE_RSN is 114 which is les than the
DOT11F_IE_RSN_MAX_LEN (130) which may result in array overflow
while parsing cckm ie.
TO address this replace CSR_DOT11F_IE_RSN_MAX_LEN to with
DOT11F_IE_RSN_MAX_LEN and remove CSR_DOT11F_IE_RSN_MAX_LEN
as it is not getting used anywhere else.
Change-Id: I58f93f37bd17653db2840720ab106c01f10d535e
CRs-Fixed: 2209355
Enhance logging levels for some auto channel selection messages useful for
debugging.
CRs-Fixed: 2189466
Change-Id: I05c0f8a7c96c8e33f997b00c3d9a9d1714f283e0
Issue is under AP-AP MCC config, mcc event is not sent from wlan
to IPA driver. mcc mode is decided with the help of connection
table. But for AP mode, mcc mode is checked and updated before
connection table is updated by adding the SAP vdev entry.
Fix is to make ipa mcc mode check and notification when connection
table is updated. Since block is not allowed when conn table is
updated, a new work_struct mcc_work is introduced.
Change-Id: I935222e26bb3f6b31685f52b75084b034daccad2
CRs-Fixed: 2075876
Fix function return type for ndo_start_xmit.
Currently .ndo_start_xmit callback functions returns int, but
the correct return type should be netdev_tx_t.
Change-Id: I36d3cc886bfa0fd74a264f2791f09a251baab2ef
CRs-Fixed: 2202134
During unload/SSR, the ol_rx_thread is shutdown and then the
cpu hotplug notifier is unregistered. In other context
cpu hotplug notifier could be accessing the freed contents
of rxthread resulting in use after free.
To avoid this race condition, reject the cpu hot plug
notificaiton in case of a driver SSR in addition to
load/unload.
Change-Id: Iafadff92d5660b979c6cf20a70eef42d22a9e51a
CRs-Fixed: 2219011
Currently hdd_set_peer_rate() is implemented in wlan_hdd_wext.c with a
prototype defined in wlan_hdd_wext.h. But the only client is located
in wlan_hdd_hostapd.c, and since that is where the "master mode"
ioctls are handled, relocate hdd_set_peer_rate() to wlan_hdd_hostapd.c
and make it static.
Change-Id: I5ec9c43b29fafc75cb35f1ee465c86acbc6b3b2c
CRs-Fixed: 2219456
When wlan_hdd_validate_context returns ENODEV in the case
of FW down or when driver is in bad state, wificond will
reset and try to unload the driver while SSR/PDR may be
in progress.
Return -EGAIAN and not -ENODEV in the above case.
Change-Id: I9b2314c2d4367b5373d1202b682d2c629a5a3e9f
CRs-Fixed: 2217006
The routine wma_unified_debug_print_event_handler logs the data from debug
print event handler. The param event data from firmware is copied to a
destination buffer .If the maximum size of the data exceeds or equals
BIG_ENDIAN_MAX_DEBUG_BUF for big endian hosts then possible OOB write will
occur in wma_unified_debug_print_event_handler. For other hosts, OOB read
could occur if datalen exceeds maximum firmware message size
WMI_SVC_MAX_SIZE.
Add check to validate datalen doesnot exceed the maximum firmware msg size
WMI_SVC_MAX_SIZE. Return failure if it exceeds.
Add check to ensure datalen doesnot exceed or equal the maximum buffer
length value for big endian hosts BIG_ENDIAN_MAX_DEBUG_BUF.
Invoke strlcpy instead of memcpy to ensure the string is null terminated
before printed.
Change-Id: I45943ae76d8fcf7b53e1f064c462d01cd6d00dcf
CRs-Fixed: 2211133
Refactor the Green AP configuration so that it can be easily excluded
when the feature is not enabled, and to support transition to the
converged configuration model that is under development.
Change-Id: I275833f4c60c315937a6fba3f403eb54925e151c
CRs-Fixed: 2218656
Since camelCase is frowned upon in the Linux coding style, rename
field enableGreenAP in struct hdd_config.
Change-Id: Ie541289f79b2bfe9f2bf490bbcde7e0649e0395d
CRs-Fixed: 2218692
ol_txrx_stats_callback is not implemented as it is not required, fix
the calling function argument type to match the prototype.
Change-Id: I8a976737af8f226a1774950170f445c93ebf683b
CRs-Fixed: 2216859
PDR recovery is taking longer time because vdev
delete is waiting for peer delete completion.
Modified vdev delete handler to get the status
of firmware. If firmware state is detected as down
then vdev delete handler will not wait for peer delete
completion.
Change-Id: I1014df239a1abecaccbe5097769a10c625597e12
CRs-Fixed: 2207795
When world mode is set (ACS chan list is empty) and ACS request comes to
driver, is_acs_allowed variable is not reset. Due to this, in subsequent
ACS requests, is_acs_allowed variable would become 1, leading to ACS
failure in a loop. Fix that.
Change-Id: I97689571e147505ea2c21f271c103e3c8cc74b80
CRs-Fixed: 2215385
Refactor the hdd portion of the Green AP feature so that it can be
easily excluded when the feature is not enabled.
Change-Id: I986c5ab7640b3182a12bef93748affefba067251
CRs-Fixed: 2216247
Recent change in hdd_is_tx_allowed function causes failure in Tx of WAPI
Auth frames. Add check in this function to allow Tx of WAPI auth frames
so that device can connect to a WAPI AP.
Change-Id: Id5d4d31385309381383dec432698a8ac625845ad
CRs-Fixed: 2217090
typedef wmi_unified_t is redefined in
qcacld-3.0/core/dp/ol/inc/ol_defines.h previous definition is here
qca-wifi-host-cmn/wmi/inc/wmi_unified_param.h, remove redefinition.
Change-Id: I2c2af59d8b24360cd09efeb12ea19c0340771bb8
CRs-Fixed: 2216859
qcacld-2.0 to qcacld-3.0 propagation
In hdd_parse_get_ibss_peer_info(), issue is reported by external
researcher that lack of string length validation might lead to
out-of-bounds read.
Related string length validation is added accordingly.
Change-Id: I32304404b2bab9011fa67316b77f6d37bb39df2d
CRs-Fixed: 2214899
Change htt_sec_type to cdp_sec_type since the CDP API expects a
cdp_sec_type as it's argument. Required for compilation using LLVM.
Change-Id: I8dbf59dd80bd0fce221a23544c69764508377ae0
CRs-Fixed: 2216859
Change the MIN, MAX and Default values of the ini
CFG_TX_SCH_DELAY_MIN to 0, 5 and 2 respectively.
Change-Id: I27d6110d69ba885535933e31dcca4e08865a7dc8
CRs-Fixed: 2216634
There is 1ms TX delay enabled in TX sch module if
frames queued in FW SW queue are less than 32.
This results in Tx delay in FW, and causes response time higher.
Add ini configuration to enable/disable Tx delay.
Change-Id: Ic180431ed2d0848df3dbb144f6b2bd70db61e5f4
CRs-Fixed: 2214307
Currently %p is used in ol_txrx_peer_release_ref function in
ol_txrx.c which violates security guidelines
To address this issue change %p to %pK.
Change-Id: I06fd9eb260d1c53e4de235b710cd0ea05125b976
CRs-Fixed: 2170905
When debug traffic stall issues, target credit number is also one
key point to trace beside status of TX queues. So add such info
in TX_QUEUE_STATS.
Change-Id: I2615545c1e041af920a4d0d6d0a8e3990768b762
CRs-Fixed: 2060945
In function wlansap_channel_change_request validate channel requested
before processing the request.
Change-Id: I1cc8c978b15fe6ee043ce6bf712a109994dce50b
CRs-Fixed: 2212078
Change the OCE WAN weightage to 2% of the scoring weightage and change
the slot size to 15 and fill the values for each slot in INI.
Change-Id: Ic67cde29a9dfdfaf6022bab106432ef2950e2340
CRs-Fixed: 2208283
Currently the HDD Green APIs do not have a consistent prefix. In
preparation for refactoring this feature, rename the HDD Green AP APIs
to have a consistent prefix.
Change-Id: Ib4d9a6db6ffacd9e19277d95f4976805d0bb6fa3
CRs-Fixed: 2216246
Currently wma_update_hdd_cfg() has unconditional code to check for
firmware support of the WMI_SERVICE_EGAP service and to register an
event handler when it is present. However this code doesn't build
correctly when the Green AP feature is disabled in the build.
Therefore featurize the Green AP service event handling.
Change-Id: Ic5f8fcc960c4b1b6ebc3b9b78acd84f583c24b9f
CRs-Fixed: 2216245
In function hdd_ndi_start_bss, avoid access to channel list pointer without
initializing it.
Change-Id: I9307f587bb9691d12b9b16f3a5e62945be7b2220
CRs-Fixed: 2205990
The OEM data is only processed in STA mode. As part of RTT config
LCI/LCR IE element configuration is required in SAP mode.
CRs-Fixed: 2179161
Change-Id: I65e0af23aba502031f23754572ca094058c5fe74
Do not disable IMPS power save during module start because
IMPS needs to be enabled only once during startup(modue init)
and only needs to be disabled during driver exit(module_exit).
Change-Id: I16babc857658f5f4064025c5eb28d287d025dd88
CRs-Fixed: 2216146
Change "qcacld-3.0: Fix memory leak issues in HDD" (Change-Id:
Iae551cd3acbb6bc2618f05cfdc33e4f742d63192) added logic to
drv_cmd_get_ibss_peer_info_all() to free the dynamically-allocated
buffer "extra" when either of the copy_to_user() calls
failed. Unfortunately this introduced a regression since now in the
success case the "extra" buffer is freed twice.
Update drv_cmd_get_ibss_peer_info_all() to remove the now unnecessary
call to qdf_mem_free() in the success case.
Change-Id: I7f8c17cd7576bf05ac8b6c4d6658ac40cb55782a
CRs-Fixed: 2215443
Use the wmi enum type in function wma_get_rcpi_req instead of
rcpi_measurement_type.
Change-Id: I5b506059ad8b0f4cd65c24e20df6306a47249fdb
CRs-Fixed: 2216015
The AP auto shutoff feature controlled by INI item nAPAutoShutOff is
obsolete, so remove it.
Change-Id: I9e96bee36acc1ea1ac6f775ae04b31929bcb8406
CRs-Fixed: 2215925
Use in_compat_syscall() to query the syscall type, so it works properly
on all architectures. Also maintain backward compatibility with older
kernel.
Change-Id: Ife19c9874dcacc18c5d19c1175988bee66ea1cdd
CRs-Fixed: 2215566
Currently NUD events are used by Framework to detect
the Network Reachability. Framework issues disconnection
for NUD_FAILED event.
Now, NUD events are tracked within driver to detect the
reachability and based on TxRx traffic, driver takes decision
to issue disconnection.
Change-Id: I461610c220288ff1fd718bb7bc2dd8375588505c
CRs-Fixed: 2195796
Currently, driver does not check for duplication of rrm
request. If driver receives any duplicate rrm request,
then driver sends pilot frame for second rrm request which
is not acceptable.
Add changes to drop all duplicate rrm requests to fix this.
Change-Id: I44a67a4119ae55ac94f5c9ecdb01032f6fd39c7c
CRs-Fixed: 2195990
Driver uses max tx power allowed for a particular channel to
calculate link report power and updates max tx power allowed with
calculated link report power. This can result in usage of
MIN_TX_PWR_CAP as max tx power if AP requests power below
MIN_TX_PWR_CAP in link request. Once max tx power reaches
MIN_TX_PWR_CAP, the driver will always use MIN_TX_PWR_CAP in
the link report which could be much less than power allowed for
a particular channel.
Use max tx power allowed for a particular channel always to
compute link report power to fix this issue.
Change-Id: I0060500f23e6131481baa00cd76f41419281e41a
CRs-Fixed: 2195960
Address the following anomalies with hdd_stop_bss_link():
- Parameter usrDataForCallback is unused
- It returns errno but one caller is checking for QDF_STATUS
Change-Id: I31086d790066eec5774cf318eff0f90736b4c92f
CRs-Fixed: 2213062
Use correct enum type for function variable in hdd_reset_tcp_delack
& return type in iw_get_policy_manager_ut_ops.
Change-Id: Iec8a678410b90dbe081c007f1bbfaa31f255799e
CRs-Fixed: 2213784
qcacld-2.0 to qcacld-3.0 propagation
hdd_get_hosttime_from_targettime() will get wrong host time when
it's longer than WLAN_HDD_CAPTURE_TSF_INTERVAL_SEC from last
TSF-HOST update. To fix this, TSF-HOST should be updated in at most
WLAN_HDD_CAPTURE_TSF_INTERVAL_SEC, it couldn't be achieved if the
timer interval is also WLAN_HDD_CAPTURE_TSF_INTERVAL_SEC, due to
processing or scheduling delay. So deduct several seconds from
WLAN_HDD_CAPTURE_TSF_INTERVAL_SEC.
Change-Id: Icce41c74568370d98509a2ebe69ae62e99ad2ce8
CRs-Fixed: 2104915
Fix usage of flag is_waiting_for_key such that it programs wake
timer only for secure STA connected state.
Change-Id: I336696f15c5fc932a4eedf5534c2182bda3d2e27
CRs-Fixed: 2214809
When a monitor mode vdev is created, a self-peer is created
automatically. However, when the vdev is destroyed, the self-peer is
leaked. Remove the self-peer when a monitor mode vdev is removed.
Change-Id: Ib6855957b56d057da9bf9a176b328cd9ec8dab96
CRs-Fixed: 2211141
Currently HDD defines function hdd_wlan_get_freq() which uses
it own static table to perform channel to frequency mapping. This
duplicates functionality provided by the converged regulatory
function wlan_reg_chan_to_freq(), so remove hdd_wlan_get_freq()
and update its only client to use wlan_reg_chan_to_freq().
Change-Id: I6fcb11b9b967ab77dcd7c8d0c1bc185ee3c18913
CRs-Fixed: 2215576
Currently, number of bytes being copied into keyname_nai buffer is
key_nai_length, which can be greater than FILS_MAX_KEYNAME_NAI_LENGTH.
But the size of keyname_nai is limited to FILS_MAX_KEYNAME_NAI_LENGTH,
which may cause buffer overflow.
To address this issue, add check for key_nai_length against
FILS_MAX_KEYNAME_NAI_LENGTH to ensure buffer overflow does not happen.
Change-Id: I88c89b1fef6fdb1c4bd93e0fb8f3e54634b4940f
CRs-Fixed: 2208881
On receiving del station command, SAP is not updating the del
station reason code properly in station info.
Update the correct reason code in station info whenever a
del station or deauth station event comes.
Change-Id: I2004dc21f18682dbc7dee488e7b55bfccd0d242a
CRs-Fixed: 2178538
Currently sap netdev interface stats are updated even for the
IPA uc HW offload packets. This is not correct as the stats need
to be updated only for the exception packets which comes to the
host and forwarded to netdev kernel. In this change update the
soft ap interface stats only for the exception packets which
comes to host.
Change-Id: I0b017cf1d5ff74234bfee540ef37ee03c5131c48
CRs-Fixed: 2164582
Call cdp_set_pn_check to set PN check & security type in data path.
Required for RX defragmentation on Napier.
Change-Id: Ie00613be2e2713c58b4d83aa1c31eb4451442477
CRs-Fixed: 2213691
Deprecate enum wmi_dwelltime_adaptive_mode and use enum
scan_dwelltime_adaptive_mode defined in scan component.
Change-Id: I9c33b852172d9208fb8440c6dc71a12aefd717da
CRs-Fixed: 2213150
In function wma_unified_radio_tx_power_level_stats_event_handler,
radio_id is checked if it is greater than num_radio. However, radio_id
is an array index and its range is 0 to (num_radio-1). So if radio_id
is equal to num_radio, a buffer overflow would occur while accessing
the array link_stats_results->results.
Fix sanity check to return error if radio_id is greater than or equal
to num_radio in wma_unified_radio_tx_power_level_stats_event_handler.
Change-Id: Ib48e8388206f28e7b2cb80177363655008a109e6
CRs-Fixed: 2209106
Add changes to trigger SAE using cfg80211 API's. Also, add
changes to handle SAE status that comes via cfg80211 ops
Change-Id: Ie113f84d4fdc927fff26b13b0e0551b92b22fd5d
CRs-Fixed: 2211041
wmi_handle is needed while registering for wmi event handler. But it is
not set for pdev before registering for EGAP event handler. With this,
EGAP support remains disabled which may end up in increased power
consumption.
Move setting of wmi_handle in pdev before registering for EGAP event.
Change-Id: Icb8accc738a3aaad7fbc1201c7c0d0b77945e8f2
CRs-Fixed: 2203380
The Data Path in the WLAN host driver needs to be sending DHCP START/
STOP indications to FW during DHCP based IP address acquisition phase
in the SAP mode.
Inspect the Tx/Rx frame, and send the notification to the FW through
WMI message.
Change-Id: Iad6308980a7158516f341b97f3baffab1e4c4bc3
CRs-Fixed: 2114816
Enable auto PS timer in hdd config such that adrastea
is never stuck in full power mode.
Change-Id: I2668b7c1ba64b67bf524e449e96ec6d79a2c1676
CRs-Fixed: 2214124
wlan_hdd_disconnect wait time is 5 second.
WMA_VDEV_STOP_REQUEST_TIMEOUT is 6 second.There have 1 sec gap.
Which means if timeout happend, wlan_hdd_disconnect will exit before
wma_vdev_resp_timer is invoked. wma_vdev_resp_timer will trigger SME
to invoke callback hdd_dis_connect_handler to release vdev obj ref
count.
If unload driver during the time gap, vdev cannot destory
successfully because hdd_dis_connect_handler haven't be called.
rmmod will wait for wlan_hdd_disconnect exiting then unload driver.
So increase hdd disconnect wait time. Make sure wlan_hdd_disconnect
exit after lower layer timeout and hdd disconnect handler be called.
Change-Id: I8fddae200ed675b93c0f300a9e28dbbfd3a976a6
CRs-Fixed: 2201448
If user configures the phymode to 11ac then band is configured
with only 5G that disables the 2.4G channels.
Instead of setting the band to 5G, enable the 5G band during
11ac phymode update if the 5G band is not enabled.
Change-Id: I4a4fa3a0bddb345e7ea73b7b36f0581644029316
CRs-Fixed: 2210359
Connected AP scan entry is aged out if beacon
is not recieved within scan age out time.
Update mlme information of the connected AP/BSSID
scan entry so that scan age out hanlder will not
age it out even though the last beacon recieved
time is greater than the configured scan age out value.
Change-Id: I14c68c28459080623ca62c0bad9052e38d7fb348
CRs-Fixed: 2202010
When hw_mode=any (both 2.4Ghz nad 5Ghz bands included),
RSSI and BSS adjustment for 2.4Ghz channels happens 2
times, once in sap_interference_rssi_count() and once
in sap_interference_rssi_count_5G() which leads to wrong
computation of weight.
Check whether a channel is 2.4Ghz or 5Ghz channel before
calling the corresponding RSSI, BSS adjustment function.
Change-Id: I6c318e489cfa177c6de088e7cdfb4779ceb99b2f
CRs-Fixed: 2208069
Set AMSDU in AMPDU support in addba response frames only
if supports the feature.
Change-Id: Ibdb51e9055199b688f494f31fd484b246ec11163
CRs-Fixed: 2211374
lim_send_sme_neighbor_bss_ind() is unused so remove it and all related
data structures.
Change-Id: I373fb570f3b368dc79ce08b7acbc1026a7e19758
CRs-Fixed: 2213056
struct csr_scanstruct contains fields currentCountryBssid and
currentCountryRSSI which are obsolete, so remove them.
Change-Id: I47f40cc687b0e905d3c2db4ad67fa32f70d5181e
CRs-Fixed: 2212972
Message eWNI_SME_CHANGE_COUNTRY_CODE is no longer being sent, so
remove it along with the handler for it.
Change-Id: I8fe5e1e8c0c18ab51d496dddd9604c3a4cb2b236
CRs-Fixed: 2212920
In HDD there are currenty two different callback functions which were
formerly used to synchronize country code changes with SME:
- wlan_hdd_change_country_code_callback()
- wlan_hdd_change_country_code_cb()
With the "converged regulatory" implementation these are no longer
used, so remove them.
Change-Id: I65da8160c9057383ad3ccf3b2094b4c52fcf5a47
CRs-Fixed: 2212959
Currently quite a few stats-related APIs which have no dependency upon
wireless extensions (wext) are located in wlan_hdd_wext.c. Relocate
the following functions to wlan_hdd_stats.c:
wlan_hdd_get_rssi()
wlan_hdd_get_snr()
wlan_hdd_get_linkspeed_for_peermac()
wlan_hdd_get_link_speed()
wlan_hdd_get_peer_rssi()
wlan_hdd_get_peer_info()
wlan_hdd_get_class_astats()
wlan_hdd_get_station_stats()
wlan_hdd_get_temperature()
Change-Id: I72a35f33648f20bbb2c01bb81cea409f6e80ee00
CRs-Fixed: 2212113
We need to set chainmask for BT /wlan share antenna
case, e.g:
2.4g:wlan 1x1 on chain 1, BT chain 0
5G: wlan 2x2 chain 1&0.
Add ini enableBTChainSeparation, default 0.
If enableBTChainSeparation set 1, chainmask will
be set to FW event though 2x2 case.
Change-Id: Ifc8c2c64824c793b72a7caa878f500c71f722e17
CRs-Fixed: 2206935
Currently 11k offload command is sent to FW as part of RSO Start and
not explicit 11k offload disable command is sent to the FW. In case of
STA+STA concurrency cases, while 11k offload is enabled for the 2nd
STA after STA 1 is disconnected, the FW asserts because it has 11k
offload enabled for STA 1 and has not deconfigured it yet.
Send 11k offload disable command as part of RSO Stop during disconnect
to the FW so that it deconfigures 11k for the currently enabled STA
and re-configures for the second STA without assertion.
Change-Id: I8a1bcb8906c809f451f7ab3df3e4c671cef062fd
CRs-Fixed: 2208649
For P2P Device, firstly it will delete the last peer in wma vdev
detach, so not wait before deliver WMA_DEL_STA_SELF_REQ. Secondly,
no throughput case run on P2P device, and no need to take care the
case which no vdev stop response from FW and then deliver
WMI_VDEV_DELETE before WMI_PEER_DELETE.
Change-Id: I36358cbc6045db2dd77b354a37817991f261d856
CRs-Fixed: 2204327
Added ENABLE_DBS_CXN_AND_DISABLE_DBS_SCAN option for the ini
gDualMacFeatureDisable. To enable dbs support for the
connection and disable dbs support for the scan.
Change-Id: I05c613467195fffac98e79b7e4a2991471ac1d80
CRs-Fixed: 2202919
When all the configured channel are in NOL list, the target channel
will be set as 0 and sap will be stopped.
Currently a workqueue is created to stop sap, so channel switch may
still happens if it is called before this workqueue is executed.
Switch channel should be not happened when target channel is 0.
Change-Id: I368830bddcd9363826f6f2c8898b86ece8dd7d89
CRs-Fixed: 2203899
Set the BA buffer size value in addba response to 63
to fix IoT issue in sending block ack for A-MPDU.
Change-Id: I48ffbcfb81d3fdf365907d2bf8eafab6fd15c701
CRs-Fixed: 2210393
In addition to actually registering with wireless extensions,
hdd_register_wext() initializes data structures associated with the
STA's roam profile. Since roam profile initialization is independent
of wireless extensions, refactor all of the roam profile
initialization code out of hdd_register_wext(), and relocate it to
wlan_hdd_assoc.c.
Change-Id: Ibd19b02373694b169ba9c122c812a264e6b8a63b
CRs-Fixed: 2212067
Correct wrong EID in wlan_hdd_set_sap_hwmode.
It should be WLAN_EID_SUPP_RATES.
Change-Id: Ic80f8b6bd32cc681ca5ae86c4cedf8435239350c
CRs-Fixed: 2204402
Update wiphy with feature to modify dwell time
and DBS scan based on scan request from cfg.
Change-Id: I23498799c05a252cbc9c9f6d50b847130dd0ceac
CRs-Fixed: 2197172
Support for standard wireless extensions has been removed from the
driver so remove the (now empty) dispatch tables as well.
Change-Id: I274906978302c029e4132cd119cefe5b02074a55
CRs-Fixed: 2211125
Previously the INI item standard_wext_control was used to control
whether or not standard wireless extensions (wext) ioctls were allowed
to be called. But since they were obsolete, all support for standard
wireless extensions ioctls have been removed from the driver. As a
result this INI items is also obsolete, so remove it.
Change-Id: I608f54fc13df691fe3d3774fdecdbfa9e0b553f8
CRs-Fixed: 2211124
At one time the predecessor to the current driver was managed via
wireless extensions, but now the driver is managed by cfg80211. The
SAP implementation of SIOCGIWFREQ should no longer be used, so remove
it.
Change-Id: I2d0205a854c6216ef36274954027c3d383deea39
CRs-Fixed: 2211123
At one time the predecessor to the current driver was managed via
wireless extensions, but now the driver is managed by cfg80211. The
STA implementation of SIOCGIWNAME should no longer be used, so remove
it.
Change-Id: Ic2c5d20fe3837d0481b4ef2f936e22c6ba867ec8
CRs-Fixed: 2211122
At one time the predecessor to the current driver was managed via
wireless extensions, but now the driver is managed by cfg80211. The
STA implementation of SIOCGIWRANGE should no longer be used, so remove
it.
Change-Id: I428e350e43cae5b8a67e8edfedc156102d9d7e3c
CRs-Fixed: 2211121
At one time the predecessor to the current driver was managed via
wireless extensions, but now the driver is managed by cfg80211. The
STA implementation of SIOCSIWCOMMIT should no longer be used, so
remove it.
Change-Id: Id5bceb081666f5f396765ac01ab6d4ee532719b5
CRs-Fixed: 2211120
None of the data items contained in struct hdd_wext_state is actually
unique to wireless extensions(wext) -- cfg80211 also uses these data
items. Since all of these data items are now being accessed by
accessor functions, rename and relocate them to struct
hdd_station_ctx.
Change-Id: Icfdde73ed3f01fb1c48105e0728f610fe1d94717
CRs-Fixed: 2208687
Currently HDD maintains an auth key management bitmap as field
authKeyMgmt in struct hdd_wext_state utilizing bitmaps defined by
wireless.h. This current implementation suffers from the following
issues:
- The implementation is independent of wireless extensions so it
should not use wireless.h definitons or be stored in a wext-related
data structure.
- The name uses camelCase which is inconsistent with the Linux coding
style.
To address these issues define a new set of bitmps along with a
properly named field located in struct hdd_station_ctx.
Change-Id: I0d1c66236f88b7e6486b2d03c3383ef38f80c134
CRs-Fixed: 2207904
There is a race condition between complete wait events as part of fw_down
indication and wait for timeout of stop_bss_event during stop_ap.
When stop ap and SSR runs parallel, first as part of SSR, fw_down
indication comes and all the wait_events are getting set. After this
as part of SAP stop, driver is waiting for stop_bss_event which will
be never set as fw_down indication is already processed. Timeout of
stop_bss_event is much higher than the timeout of wait-for-external-
thread-completion during shutdown, hence shutdown will proceed without
setting the stop_bss_event. Now as part of the SSR, hdd_re_init gets
invoked and the memory of the hdd_hostapd_state (and as part of this
memory of stop_bss_event) is getting memset inside hdd_init_ap_mode.
After this memset the timeout of the stop_bss_event occurs and
stop_bss_event tries to access this memset memory.
To address this issue, all the events which were added in between fw_down
indication and shutdown process, should be completed as part of
the shutdown.
Change-Id: I022f125b2afc99862351407b140f2d1b72f43bc4
CRs-Fixed: 2206326
As center_freq1 and center_freq2 passed in bss start params
by hostapd are not stored in sap_config, center_chan derived
in sap_ch_params_to_bonding_channels() is coming 0. And so BSS
start failed.
Store center_freq1 and center_freq2 in sap_config in
__wlan_hdd_cfg80211_start_ap().
Change-Id: I3a5869c2d8488a5bd272762b8dab67b340d72817
CRs-Fixed: 2193663
IPA module has been moved to CLD component under the converged
driver model. Move the legacy HDD IPA SMMU functions to the
IPA component.
Change-Id: I3ac5ebe87cc48913f3e8e075e60737e78664f861
CRs-Fixed: 2177925
IPA module has been moved to CLD component under the converged
driver model. Move the legacy HDD IPA WLAN event handler to
the IPA component.
Change-Id: Ia53adce7ef29eea747f288fa074f96a84e47925d
CRs-Fixed: 2177925
IPA module has been moved to CLD component under the converged
driver model. Move the legacy IPA UC offload initialization to
the IPA component.
Change-Id: I221a11e7f8aa2459918f87c6b043d4682e05cb04
CRs-Fixed: 2177925
As part of converged driver model remove IPA from
HDD and create a new IPA CLD component. Remove the
legacy code from the HDD.
Change-Id: Id4691e0f490c2f9bd9ccc8d5225be32002a5df9e
CRs-Fixed: 2177925
IPA module has been moved to CLD component under the converged
driver model. Move the legacy IPA stats and debug info APIs to
the IPA component.
Change-Id: Ieb68a1579986c835f66c84e5e3b7aa2a4004383d
CRs-Fixed: 2177925
IPA module has been moved to CLD component under the converged
driver model. Move the legacy IPA set perf level APIs to the IPA
component.
Change-Id: Idbbab9cc6885b6acf1cd40d432a236f0629c8dff
CRs-Fixed: 2177925
IPA module has been moved to CLD component under the converged
driver model. Move the legacy IPA setup and initialization code
to the IPA component.
Change-Id: I63717eb2601c569131c6642f7330e4182e604424
CRs-Fixed: 2177925
IPA module has been moved to CLD component under the converged
driver model. Remove legacy WMA interface IPA command and use
the new defined API.
Change-Id: Icd9a207f43f8df4dc563d0078d402470683cfd7d
CRs-Fixed: 2177925
As part of converged driver model remove IPA from
HDD and create a new IPA CLD component. Add files for
IPA core, dispatcher and target_if. Define IPA related
public and private structures.
Change-Id: I8848331edc7dd878f9fc51ef9f5e311ad91ed70b
CRs-Fixed: 2177925
Update wlan_hdd_wext.c to use the recently introduced roam profile
accessor function hdd_roam_profile().
Change-Id: I0b7998f674fae9b021b2f5c4d5911b930ed40a39
CRs-Fixed: 2207896
Update wlan_hdd_scan.c to use the recently introduced roam profile
accessor function hdd_roam_profile().
Change-Id: I0aec410024263a2f44b79cbcb5f49b3347a5b46f
CRs-Fixed: 2207895
Update wlan_hdd_power.c to use the recently introduced roam profile
accessor function hdd_roam_profile().
Change-Id: I1d7be21fa5bec21f9502e7c078360d72fc426a6d
CRs-Fixed: 2207894
Update wlan_hdd_nan_datapath.c to use the recently introduced roam
profile accessor function hdd_roam_profile().
Change-Id: I442aa7a4ea62f8a5105ed7d7783394f883d5f215
CRs-Fixed: 2207893
Update wlan_hdd_main.c to use the recently introduced roam profile
accessor function hdd_roam_profile().
Change-Id: Idfb20fbf55c45051e8e67d6a2a746e44c5176ff3
CRs-Fixed: 2207892
Update wlan_hdd_ioctl.c to use the recently introduced roam profile
accessor function hdd_roam_profile().
Change-Id: I6a535f56ed93ebbeb77d3b23f21562e8cd1beb1e
CRs-Fixed: 2207891
Update wlan_hdd_hostapd.c to use the recently introduced roam profile
accessor function hdd_roam_profile().
Change-Id: Ieb772ec0b851d9a036f01f5002f35033c628d8db
CRs-Fixed: 2207890