While handling IPA event in case if, __wlan_ipa_wlan_evt() queue
WLAN_AP_DISCONNECT cmd for later processing in work-queue context and
in the meanwhile sme close session deletes vdev then, as part of work
queue context driver process WLAN_AP_DISCONNECT and sends
WMA_IPA_OFFLOAD_ENABLE_DISABLE cmd to firmware for the VDEV which is
already deleted by sme_close_session. This result asserts in firmware.
This reverts commit Ief9318bb476b480fd52f4155a0788a34c1e2ed53
Change-Id: I6128fb489fc40cc7ed01cbdf9c419a6a6b20c6d4
CRs-Fixed: 2295672
As part of any change interface TDLS links are toredown and tdls
state set to disabled in FW. The assumption here is before adding
new interface disable TDLS mode as TDLS is not supported in
concurrency. Due to recent changes in framework,
Driver may receive the change interface to P2P Device mode
after STA connection then teardown is not expected as
STA + P2P Device modes does not comes under concurrent operation.
Check for current and new interface types before disabling TDLS.
Change-Id: I26cfab077b3f83c64687479fba5c7a7c01491a52
CRs-Fixed: 2301650
WPA2 Security Improvements test plan case 4.2.2
Scenario F: RSN version Field is truncated to 1
octet. That means the test bed will send assoc
request with RSN ie total size 3.
Current driver unpack_core will return
DOT11F_INCOMPLETE_IE and doesn't extract the
incomplete RSN ie data.
lim_check_wpa_rsn_ie will have no chance to
run dot11f_unpack_ie_rsn to reject the assoc
request frame because the assoc_req->rsnPresent
is 0.
Change RSN Opaque Min Len to 2 (data min len 0),
so that the unpack_core can extract the RSN ie
even though it is "INCOMPLETE", and then
the later lim_check_wpa_rsn_ie can reject such
assoc request.
Change-Id: Icba37840ea6eb1cc1c2c225efd9ec58757606eea
CRs-Fixed: 2297852
If STA interface is added after softap is started on DFS channel,
then SAP is stopped and re-started on non-dfs channel which is selected
using driver internal acs. But, internal acs is now obsolete. Therefore,
select non-dfs channel from preffered channel list and use SAP CSA
instead of restart.
Change-Id: I95e50c3ffbce35cf30cc9a06f0f14c9e60eb3e3f
CRs-Fixed: 2301895
Add support for DP RX Threads as a part of the FR. Multiple RX threads
can be enabled from the ini. The code is added in a new DP module
outside of the cmn project.
Change-Id: Ief6ee955f13c5e527986307371b8e45677cb9700
CRs-Fixed: 2256446
If SAP configured with RSN security IE, peer should
include compatible RSN parameters.
Reject the Assoc request if peer include invalid RSN
IE.
Change-Id: I10083d7feb669fe5d1c2650ae3c3092e5b28169e
CRs-Fixed: 2294876
The MAC context first_scan_done flag is a remnant from a prior version
of the driver which is initialized but then never read or written.
Since it is obsolete, remove it.
Change-Id: I81b371cb768bd2d042d3f3bf0991d2b27b953b3c
CRs-Fixed: 2298274
Currently the driver doesn't have a check to bring
up a SAP on STA SCC channel if its a SRD channel
and does force SCC on it, even if SRD master mode
is not supported.
Fix is to check the SRD ini before SAP bringup
on the STA channel
Change-Id: I17f7df9ed973ecc6669f0d36a8c390c71624019b
CRs-Fixed: 2302737
During the vdev attach if the self peer creation fails from the protocol
stack the correct vdev delete is sent to the firmware but the success error
is propogated back to the HDD and the wmi vdev set commands are sent
to the firmware with invalid vdev id.
Change-Id: Ida3964e5a629f53e41ffc50b53216762727fd33d
CRs-Fixed: 2299941
As part of Iab0862eda2392bd516c8ba0b913441b8e0d4c493 , timestamp of
last received frames was introduced to block excessive mgmt frames
being sent as part of Denial of service.
Move that logic to control path to remove dependency on data-path.
CRs-Fixed: 2280235
Change-Id: Idd7617782e71ee187eef7fcb3523c05b49f82094
Disable this feature for MOBILE_ROUTER product, since some MOBILE_ROUTER
platform will attach two wlan cards with separate wlan driver,
during second driver loading process, it will report a warning of
"cannot create duplicate filename" as node with same name has been
created after first driver was loaded.
Change-Id: I9e06439b3a6dacdf4eb5ae87898338ab1eeb8b16
CRs-Fixed: 2295391
In cds_trigger_recovery(), we avoid recovery if the wlan driver is
unloading. While this is ideal for production devices, we would like to
panic in debug builds for offline analysis. Move the check to see if the
wlan driver is unloading to immediately after the check to see if we
should panic or not.
Change-Id: I07cc624295416ca555eb4d847f709cf30e6672bb
CRs-Fixed: 2299903
Drop Probe request frames before posting on Scan Queue if the queue
is already having too many beacon/probe frames to process.
Change-Id: Iaad3d3ea0b50edf7ae7a9c5437ac5c210fe6a97f
CRs-Fixed: 2298581
The MAC context fMiracastSessionPresent flag is only referenced by
macro IS_MIRACAST_SESSION_PRESENT(), and this macro is unused. Since
the fMiracastSessionPresent flag is obsolete, remove it and the macro.
Change-Id: I5ad6e5b56bd0476e7894c431b56b9ad5730923d4
CRs-Fixed: 2300050
Make the following updates to the extscan stop BSSID hotlist logic:
1) Exclusively use the Unified WMI data structures.
2) Update the HDD<=>SME interface to enforce the contract that SME
must not make any assumptions about the buffers provided by HDD.
Change-Id: I01e29a96fded829c734532b021aeea1960bba641
CRs-Fixed: 2294273
Recently change "qcacld-3.0: Use mac_handle_t in wlan_hdd_ioctl"
updated the nomenclature used in HDD. During the implementation of
this change a NULL check of mac_handle in hdd_set_dwell_time() had a
"!" removed, incorrectly changing the logic. Restore the correct logic
for NULL-checking mac_handle.
Change-Id: I2bb8393d5adb3156795b3b722d839812419e4995
CRs-Fixed: 2299812
QDF_DEBUG_PANIC() is stubbed out for PERF builds, leading to a warning
in cds_trigger_recovery() because @call_info is unused. Extract the
trigger recovery handling into its own function with proper types
instead of void*, and make cds_trigger_recovery_work() a thin wrapper
over this to do the type conversion. This will address the unused
variable warning, and provide stronger type checks via the compiler.
Change-Id: Idf712bdf30d2c6c338219a0327221fe6a0b0b27a
CRs-Fixed: 2299813
Add support for wildcard OUI 0xFFFFFF in action OUI framework.
When the OUI FFFFFF is defined for some action OUI ini and bit 0
of info_presence bit is set to 0 then the check for vendor OUI
in vendor specific IEs and the vendor IE data checks are skipped
and other checks like MAC, Capabilities are done during connection.
Change-Id: I6e996c5d79f4f7bd91e11134b1b8ba69a1ff0253
CRs-Fixed: 2293167
While ACS delayed worker scheduled and is running the function
wlan_hdd_cfg80211_start_acs(), ACS_PENDING has already been cleared by
wlan_hdd_cfg80211_start_pending_acs() before it, so the later coming
stop sap event can't cancel the running delayed worker and free the
sap context which need access by delayed worker.
Fix by clear ACS_PENDING after wlan_hdd_cfg80211_start_acs(), and move
cancel ACS delayed worker before cancel any scan, it can cancel ACS
scan invoke by delayed worker and avoid race condition.
CRs-Fixed: 2289364
Change-Id: Ibd771fc199a0778ac1d8f1f04ba22b49014437de
The MAC context ftm_msg_processor_callback is a remnant from the
legacy FTM support. Since this callback is no longer used, remove it.
Change-Id: Ibd375bcd91900654315681f7f9b56bf100090942
CRs-Fixed: 2298895
Add the basic infra for MLME CFG items and the APIs to be used from
other components.
Change-Id: I39654de8f7266089d574b85437a19e8d21f91249
CRs-Fixed: 2293825
During ssid restart currently driver send vdev stop and then
restart. There is no need to send vdev stop in this scenario and
direct vdev start is enough to set hidden ssid.
Thus remove vdev stop during hidden ssid restart.
Change-Id: Ide6826f73ecd51bbafa875ed547efeff4a410397
CRs-Fixed: 2298636
Currently the driver doesn't handle the nss update
if a prior connection is already present in DBS
mode. Suppose if a STA is already connected in
5ghz and the SAP comes up in 2.4ghz, the beacon
template should be updated with NSS = 1
Fix is to check whether the current hw_mode is in
DBS or not, and change the nss in the beacon template
accordingly
Change-Id: I54ead1fd26d705a821160b5bc5d816df1d2ab8f4
CRs-Fixed: 2288307
Currently VDEV Force cleanup happens only if FW is in recovery state
and not if target_ready is set to false. However, since FW down flag
is set for recovery case also, even during SSR, the VDEV Force clean up
is not triggered.
Force cleanup vdev for FW down case also in wma_vdev_detach.
Change-Id: I3ba6dc92c1c5ea1090f9f5dc9062775de6db1954
CRs-Fixed: 2298278
Several HDD logs have been identified as being excessive. Reduce the
logging level of these logs to avoid spamming dmesg.
Change-Id: I49e0f91c5d66051f9e6ffd991d86505a11faa346
CRs-Fixed: 2298385
To speed up recovery trigger debugging, pass the caller's function name
and line number, such that the group needing to do the initial triage
can be easily identified via the panic message.
Change-Id: Ibac141a62a990adf7a781d7ef64544d92ff4e31b
CRs-Fixed: 2298194
Reduce log level for few prints to debug to avoid flooding
of prints to console.
Change-Id: I514585cc87d51ead15fb1f40d45f62023628d9bb
CRs-Fixed: 2295815
Do sap_ctx release for all DFS "Ignore" case.
Otherwise, the ref count may mismatch.
Change-Id: Ib3d7c416ec3942f4d0317825fa504bc2b5abd968
CRs-Fixed: 2297787
Remaining may be greater than its original value when
(remaining & 0x3)!=0, then OOB occurs when memcpy.To address
this, align the remaining after doing memcpy.
Change-Id: I3e39a791a76a272e82beb6561375e26ca84ec0f4
CRs-Fixed: 2259721
lim_process_ap_ecsa_timeout() contains a misleading indent. Reduce the
indentation of the affected code.
Change-Id: Ic18ebf88b0a754c8088005d22a9cec94313fa550
CRs-Fixed: 2297513
Currently, hdd_update_tgt_cfg() continues execution if allocation of the
pdev object fails. Unsurprisingly, this leads to numerous access issues.
Abort hdd_update_tgt_cfg() if allocation of the pdev fails.
Change-Id: I1c820994510a10949ef546cac06a8eb97ca0adf1
CRs-Fixed: 2297412
For SAP (2.4G) + SAP (5g dfs chan), the radar event
will be posted to all vdevs. 2.4 SAP will run into
failure in random chan selection.
Fix by ignoring radar event for Non dfs channel SAP.
Change-Id: I739f2a84f17941e501dfe52c9cd12afc6a42425f
CRs-Fixed: 2294077
The hosts sends the beacon template to firmware through the
command WMI_BCN_TMPL_CMDID. The firmware sends a TX complete
indication via the WMI_OFFLOAD_BCN_TX_STATUS_EVENT and upon
receiving this host decrements the CSA count.
The hosts waits until the csa count becomes zero and then sends
vdev restart to firmware. There are some issues with this
implementation when 10 beacons with CSA are taking more time
than 1 sec. This is because in STA+SAP case sometime the
WMI_OFFLOAD_BCN_TX_STATUS_EVENT is received after in 200-300ms.
If the host doesn't receive the channel change event, it gets
struck in the channel change.
To avoid this scenario, send the beacon template to the firmware
for every beacon interval without waiting for the beacon TX
complete indication from FW except for the first beacon template
updation. Introduced a new timer (ap_ecsa_timer) to update the
firmware with the beacon template.
Change-Id: I377768b87c96fd5064aa04d1ed5434a475e656ef
CRs-Fixed: 2294661
Revert I457c20f6ba908cac32cfc9b27fbaf980f1ec174d, which removes the
check to ensure recovery has been enabled via configuration before
starting the recovery process. This is a critical feature for internal
debugging. The check was moved into cds_trigger_recovery() to prevent
callers from bypassing this configuration and unconditionally asserting
the target firmware. Restore that check now.
Change-Id: Ieb347cfcd0eecd24f005d374c0fead07c34f3705
CRs-Fixed: 2296038
cds_trigger_recovery() already checks for various conditions before
actually triggering recovery. One of these checks ensures that recovery
is enabled, but some callers are checking to see if recovery is enabled
before calling cds_trigger_recovery() as well. Because of this, some
important checks are skipped, and crashes can occur when they should
not. Remove the redundant checks at the call sites for
cds_trigger_recovery() so that all of the recovery conditions are
properly handled, and the wlan driver avoids crashing when it should
not.
Change-Id: I8c26a002b66496a1eb06263f3f8b91ead739e3ac
CRs-Fixed: 2296008
When channel 4 is unsafe channel in 2.4g LTE coex ACS case,
the weight for channel 4 will be calculated as 0 by function
sap_sort_chl_weight_ht40_24_g, it's wrong because weight_copy
doesn't be initialized in this case, so acs channel select
may choose wrong channel to start sap.
Fix is to add initialization for weight_copy when weight is
SAP_ACS_WEIGHT_MAX.
Change-Id: I4aa0fb133774d9980146a9ceae9b91154bd15bbc
CRs-Fixed: 2282371
Scheduled scan (a.k.a Preferred Network Offload, PNO) is intended to be
used only for station interfaces. However, it has been observed that
userspace will send scheduled scan requests for non-station interfaces.
Reject requests to start or stop a scheduled scan on non-station
interfaces.
Change-Id: If5abd242f134518ac4e3d942c1513c66b5c50ff3
CRs-Fixed: 2295101
In wma_vdev_resp_timer(), while handling WMA_DEL_STA_SELF_REQ if
wma_crash_on_fw_timeout() is true, then wma_vdev_resp_timer initiate
SSR and memset iface structure without freeing iface->del_staself_req.
This results mem leak in wma_vdev_resp_timer().
Free all the dynamic memory from iface structure in wma_vdev_deinit()
instead of handling them separately.
Change-Id: I7b16ddc9dfb70638c6f895bd97cd9c106bfad595
CRs-Fixed: 2293099
Clean up the WMA context structure which currently has the following
issues:
1) Fields are defined that are unused
2) Fields are defined that are missing documentation
3) Fields are defined with documentation inline rather than in the
documentation block
4) Documentation exists for fields that are no longer present
Change-Id: Ia9fb52c3967818c0a12ade7a15f0c353494f56de
CRs-Fixed: 2296105
pe session_id should not be used as vdev_id.
Add a vdevId field to tAggrAddTsParams struct
and fill smeSessionId as vdevId and pass this
down.
Change-Id: Id021dda35a32f7870277d405c85a0878d7baa3f3
CRs-fixed: 2272126
Do not required to print function and line number
for data path statistics function which is invoked
by ioctl.
Change data path statistics to info print so
that it can be printed in dmesg as well.
Change-Id: I4b5ea4202255ace71dbb6f9a4bbff6f93e496425
CRs-Fixed: 2278885
When peer creation fails in wma_set_link_state, wma sends the
WMA_SET_LINK_STATE_RSP msg to LIM and Lim frees the msg->bodyptr
But there is a situation occurs where after this wma_peer_create
fails, mc thread stop sys event also occurs where the mac_stop
is invoked which calls the pe_free_msg -> pe_free_nested_messages
In pe_free_nested_messages, if the msg type is
WMA_SET_LINK_STATE_RSP, we free the msg->bodyptr->callbackArg.
This callbackArg points to the PE session. Trying to free the
PE session results in memory corruption.
Just pass the session id as callback argument when the callback
is lim_post_join_set_link_state_callback.
Change-Id: I27f9127685ac7ef8d215b135f1625e8e2f225fc0
CRs-Fixed: 2287827
Peer assoc command expects a response from firmware so peer
assoc timer is started at wma once command sent to firmware.
In the failure scenario peer assoc command is dropped at wma due to
unavilable 11b rates but timer was not stopped. So at later point of
time timer got expired and it triggered timeout error handling.
Dont start the timer in failure scenario and send failure response to LIM
if the peer assoc command failed to send command to firmware.
Change-Id: Iaa644fbe7940502fc07b5110787c2dc5b58f4612
CRs-Fixed: 2292610
After bring up SAP(2G)+SAP(5G) DBS mode, initiate CSA on SAP2
from 5G to 2G (DBS mode to SCC mode) with cmd:
iwpriv wlan1 setChanChange X
assert will happen.
Fix: SAP+SAP on same band on Helium is not PORed case yet,
Do concurrency check for path: iwpriv wlan0 setChanChange X.
Change-Id: Iacd6f2b4c49f4bb52739f602e7ba1e8cd9be04bc
CRs-Fixed: 2289366
Kernel checkpatch is throwing style issues due to use of camel case
notation for SAP FSM states.
To fix this, rename states according to kernel coding guidelines.
Change-Id: Ia09cccb7c51a61436d067710a763bed7f2437820
CRs-Fixed: 2295580
In preassoc state, if the set link state has failed to create the
peer, then send back a failure status to the upper layers and
ensure that the set link state for failure is not called again
because this will eventually call vdev stop and lead to a vdev
stop response and then lead to a peer delete attempt which is
really not needed since the peer has not been created at all.
Change-Id: I265726000204bab51c429a2d00cdd599d8064170
CRs-Fixed: 2286684
When a station connected to one of the sap interface reassociates
to the other sap interface, the driver triggers internal
disconnect for that station with disassocTrigger =
eLIM_DUPLICATE_ENTRY. Once this station is deleted from firmware
we send add sta for the station lim_send_sme_disassoc_ntf on the
sap interface to which the station is to be connected. But the
first SAP interface doesn't send eWNI_SME_DISCONNECT_DONE_IND to
remove eSmeCommandWmStatusChange.
send eWNI_SME_DISCONNECT_DONE_IND from lim_send_sme_disassoc_ntf
in case eLIM_DUPLICATE_ENTRY.
Change-Id: Ibc3cc8121928fe83cc1d8cf3e98419bf5f7f7d1c
CRs-Fixed: 2286783
hdd_parse_disable_chan_cmd() misleadingly indents code after a for loop
without brackets in such a way that it is easy to assume the code is
inside the for loop, but it is not. Not only does this cause build
failure for some configurations, but is dangerously confusing for future
readers. Remove the misleading indentation in
hdd_parse_disable_chan_cmd().
Change-Id: I4af2bd4b05719354db730ef39a3b6ec18d6f842b
CRs-Fixed: 2290196
The scan_id_counter in the WMA context is initialized but never
incremented or read. Since it is not actually used, remove it.
Change-Id: Id159ba6ff36ae2a3977978f8799cf16aeee5300d
CRs-Fixed: 2294150
The driver_type field in the WMA context is written but never
read. Since it is not actually used, remove it.
Change-Id: I646fea6fc5f08bf090980de755055b58f6fec0cd
CRs-Fixed: 2294149
Change "qcacmn: Remove struct extended_caps" (Change-Id
I96fd072b7d6b58a9c237165fcba7ed8c8da0eae3) in the
qca-wifi-host-cmn project removed the only reference to
struct hw_mode_idx_to_mac_cap_idx. Since this struct is
now obsolete, remove it.
Change-Id: I1b57c09d18ec52574e34487122fe526b10b9f51f
CRs-Fixed: 2294148
If wait for key is set during close session, the request is dropped
in CSR and thus during SSR the BSS peer and SELF peer are not
deleted resulting in peer leakage.
Fix this by resetting wait for key before sending close session.
Change-Id: I139640ad5ad473372bce24413f7ace1cef32fbc3
CRs-Fixed: 2294417
Update driver to use NAN config params based converged CFG
component. Cleanup hdd config references to nan ini params.
Change-Id: I5af85d68ee53ad557e64523f7a1719e328536926
CRs-fixed: 2290360
The command e_sme_delete_sta_session command is serialized and
is not removed from the active command list in the response path
at csr_process_del_sta_session_rsp().
Remove the command e_sme_delete_sta_session from active command
list in csr_process_del_sta_session_rsp
Change-Id: Iff36460055bd73705575110d88c3eb75c8052afa
CRs-Fixed: 2292607
When PEER sends auth mgmt frame to DUT and if DUT doesn't ACK
back, PEER sends auth frame again and again till it gets ACK or
timeout occurs.
It has been observed that in busy environment, PEER ends up sending
same AUTH frame almost 100+ times within 20ms apart due to ACK lost.
in such scenario DUT gets busy processing AUTH frames from PE queue
and other low priority queues suffer from starvation.
to fix the situation, drop duplicate auth frames by checking retry
field and sequence number.
CRs-Fixed: 2290133
Change-Id: I1b545dab4d416facc24c3762b86cd1e73981de5c
Remove set_antenna_mode_cmpl variable from hdd_ctx structure
as it is not using anywhere.
Change-Id: Ifc3395f944b10da9537815a94c5484312190141a
CRs-Fixed: 2289642
Duplicate stats buffer in the callback so that all
allocations get freed by its owner, this will avoid
memory leak issue because of race condition between
umac and upper layer.
Change-Id: Id18d75eb9adc46a6147634eb5b1e0babe32c7c37
CRs-Fixed: 2292038
Add support for new 1x1 connect with 1 Tx/Rx Chain action OUI to be
parsed and sent to the FW. From host during connection, the behaviour
is same as existing connect 1x1 action OUI where nss is sent to 1 to
the FW, but the FW takes the decision to use only one Tx/Rx chain
based on the OUIs defined in the new action ID.
Change-Id: Ia464209043dc73bcc71577c43b28fbe13e780c23
CRs-Fixed: 2264326
When modem shutdown is triggered and HOST driver is in the
middle of a connection attempt, it doesn't check if the fw target
is ready. Instead the driver tries to join multiple AP with same
ssid and for each connection it tries to send peer add as part
of wma_set_link_state.
Add check to see if FW is down in wma_create_peer. Return
failure to LIM instead of sending add peer to firmware.
Change-Id: I4642c844bcc1d7f32888b0f89db5c11ee84c41fe
CRs-Fixed: 2267967
SAP stop is in progress when FW down event is received
from platform driver. Vdev_stop command is not sent to
firmware due to target ready check but same check is not
present for self peer_delete command. This results in
assert in firmware since vdev_stop command is not received
before self peer_delete command.
Fix is to set wmi_stopinprogress as part of wma shutdown
notifier callback.
Change-Id: I91fa6aaffe4f35b446a3c8748f168e83620bf4b0
CRs-Fixed: 2266786
Currently if the target is not ready the WMA VDEV requests are not
sent to the FW. In SAP case where the target is not ready and the
VDEV Stop request has not been sent to the FW, when VDEV detach is
done after VDEV stop, since there is no VDEV stop request previously,
bug_on is triggered.
Send del_self_sta_resp to LIM with success status if target is not
ready.
Change-Id: I2e1d469b2beb05dd8fbb7b07976c65c0c7409d99
CRs-Fixed: 2252602
Currently if the FW sends a Roam Start while the host is handling the
CSA Offload event and triggering a vdev_restart, the FW asserts
when the it receives the vdev_restart as it has already started the
Roam.
Disable roaming by sending RSO Stop when the CSA offload event is
received from the FW and restart RSO when channel switch is complete.
Change-ID: I33e9ce6307bc36994eb5f4a99434cb76ce5d3184
CRs-Fixed: 2289047
Change random scan mac_addr and mac_addr_mask attributes
to be optional similar to the standard NL80211 scan trigger interface.
When these attributes are not present, configure default values in
such a way that the random addresses generated are not multicast
but locally administered.
Change-Id: I81acfe05d7f08d1b8f77179816da9df05f2eb233
CRs-Fixed: 2280250
Before STA connection starts, privacy settings are imposed to
HDD layer and then checked against concurrency settings. But
when the check for privacy/concurrency fails, the previously
populated privacy settings are not cleared because the CSR
roaming state machine doesn't goto privacy setting clearing
stage under such circumstances.
Add API to clear the privacy settings in HDD layer when
privacy checking against concurrency fails, so that old
privacy settings will not interfere with new settings when
connection starts next time.
Change-Id: Ic8eb28def3839195301e9bbb358f876dc3d46642
CRs-Fixed: 2274858
When STA role is coexisting with other sessions(P2P, SAP or IBSS),
WAPI encryption mode is not allowed.
Add a new API to check if the connection/start request should
be rejected when:
1) A STA with WAPI encryption is to be connected while there
is at least one concurrent session already running.
2) A new session is to be started while there is already a STA
connection with WAPI encryption enabled.
Change-Id: Id3cc90a63a1b502a3a0783ebbc1af33f96620559
CRs-Fixed: 2271280
When STA is already up on some 2.4Ghz channel and SAP needs to be started
on some 5Ghz channel through ACS, scan channel list contains only 5Ghz
channels. But scan results contains beacons on STA 2.4Ghz channel as well
which is getting parsed contributing to bsscount and rssi on that 2.4Ghz
channel which should not be the scenario as bsscount should be 0 and rssi
should be -100 on this 2.4Ghz channel as it is not present in the scan
channel list sent by HOST to fw.
Give max weight to those channles in the sap_compute_weight
but take the effect of those channels on the channels
present in the ACS scan list.
Change-Id: I51d14aa1bb9b280c6c4d9d0085de86cc7339a4f5
CRs-Fixed: 2290744
Make the following updates to the extscan start BSSID hotlist logic:
1) Exclusively use the Unified WMI data structures.
2) Use the new wmi_unified_extscan_start_hotlist_monitor_cmd() API.
3) Update the HDD<=>SME interface to enforce the contract that SME
must not make any assumptions about the buffers provided by HDD.
Change-Id: I4d9f982177bc61a751ba0e7437fe55482dfd2723
CRs-Fixed: 2291946
wma.h contains a large number of obsolete macros and data structures
which are unused, so remove them.
Change-Id: Ideb5e64b5486c3ea652777b27cbb5d1960b154d5
CRs-Fixed: 2292529
In __hdd_hard_start_xmit, Null-checking for skb under drop_pkt
suggests that it may be null, but it has already been dereferenced
on all paths.
Remove this Null-check for skb under drop_pkt as skb cannot be NULL.
Change-Id: I6c8e816652951a95cff26b26c48b8f39a096b095
CRs-Fixed: 2259256
APPS watchdog bark timeout happens due to continuous excessive
logging of "Not able to allocate context" in ol_txrx_offld_flush
and in ol_rx_data_process. Remove these extra logs.
Change-Id: Idf96ca584d77c68ad771a150604d1b9ca65ba3eb
CRs-Fixed: 2289492
Add a conditional compilation QCA6390_HEADERS_DEF flag to compile
htt_rx_restitch_mpdu_from_msdus.
Change-Id: I6b526f2dd5d56338e520ec138512b7cf2d849d0c
CRs-Fixed: 2275699
The error logs in hdd_validate_adapter are mostly useless without
knowing where it was called from. To avoid adding additional logs at all
of the call sites, log the caller information from hdd_validate_adapter
itself.
Change-Id: If953412c8435069c0ab87649fbf54130eb81cd09
CRs-Fixed: 2292705
Nearly all the callers of wlan_hdd_validate_session_id() log largely the
same message. Such copy-pasted code has poor maintainability. Instead,
internalize these failure logs into the function itself, which allows us
to control the logs driver-wide much more easily.
Change-Id: Ib7bfa8020492a5cb1df2283f99b827095dfb7578
CRs-Fixed: 2292702
After insmod wlan.ko, don't ifconfig wlan0 up, driver will be in
DRIVER_MODULES_OPENED instead of DRIVER_MODULES_ENABLED state.
If host suspend at this time, PCIE will suspend too, when resume,
PCIE bus driver may reset ROME soc during link reconnection, copy
engine is reset too.
When host send wmi cmd to F/W, copy engine will access 0 address,
SMMU fault will happen.
There is logic inside ROME hardware&firmware, if PDEV_SUSPEND or
WOW_ENABLE WMI command is sent to firmware, firmware will decuple
the reset path between ROME pcie interface and ROME soc,
then ROME soc will not be reset if pcie bus driver toggle the
PERST pin to ENDP, only pcie interface part is reset.
Change-Id: I3b6344f69ea70248953af155efd00adf7914e98b
CRs-Fixed: 2243667
Several logs show up repeatedly in dmesg. Reduce the following logs to
help avoid spamming dmesg:
* wlan_ipa_wdi_meter_notifier_cb()
* hdd_print_netdev_txq_status()
* hdd_wlan_start_modules()
* hdd_wlan_stop_modules()
* csr_nonscan_pending_ll_peek_head()
* sme_qos_statustype()
Change-Id: Ic5ca059f258dee92ffaa4b0ecca47df41b424c11
CRs-Fixed: 2292710
The driver currently changes the hw_mode based upon
the first candidate found in the scan list, and tries
to connect to it. It may happen that the connection
fails, and the STA then tries to connect to the AP
on same channel as the concurrent adapter.
It would result in hw_mode = DBS, as it is not
updated after connection success/failure.
Also if the first AP channel is in same band as that
of concurrent adapter, and the connection fails,
and the STA tries to connect to an AP in a different
band, this too is not allowed as hw_mode is not DBS
Fix is to change the hw_mode based upon the scan list.
If the driver finds any scan result which may lead to
DBS connection, the hw_mode should be set to DBS.
Once the connection is done or failed, the driver
can check and update the hw_mode again.
Change-Id: I42ffe0c63371e048771e2b9b00b887e9c6c65d6c
CRs-Fixed: 2288572
Since, internal channel select is no longer in use and is obsolete.
Therefore, remove eSAP_CH_SELECT state from SAP state machine.
Change-Id: I7960999b983ddc1b5f6048aacbe92c500350a49b
CRs-Fixed: 2288258
When host F/W out of sync issue is found in driver, assert
command is needed to send to firmware to collect firmware dump
even self recovery isn't enabled on Rome, or no enough
firmware info for debug.
Change-Id: I457c20f6ba908cac32cfc9b27fbaf980f1ec174d
CRs-Fixed: 2289539
In SAP mode, one peer sends multiple deauth frames which
results in queuing multiple WM status change cmd which
is added at head of queue. WM status change cmd is added
at head of queue for other peers which results in delay
in processing the cmd for first peer. The WM status cmd
is processed and peer is deleted and connection is
initiated by the same peer. The remaining WM status change
cmd is now processed and del_sta is triggered. On receiving
del_sta response, cleanup_trigger in sta_ds is checked
and eWNI_SME_DISASSOC_RSP message is posted to SME instead
of eWNI_SME_DISCONNECT_DONE_IND since the sta_ds entry is
added newly. This will result in active command timeout
since WM status change cmd is not removed from active queue.
Fix is to drop deauth or disassoc frame after the first one
is processed and use normal priority to queue WM status
change cmd.
Change-Id: Ib87fa7496d4adb6e25c30de657ce62101ca6f263
CRs-Fixed: 2291442
When failure status is received in vdev start response from FW,
host will call wma_remove_peer to delete peer.
However, this operation is not done in the timeout handler of vdev
start request and it will lead to peer leak when vdev start response
failed to be received from FW.
Add peer deletion in vdev start request timeout handler accordingly.
Change-Id: I419369d09be1bd4b7e19e45b11256190fd2ec267
CRs-Fixed: 2288937
Currently for fragment packets received legacy rx buffer replenish
is done which does not take in to account number of msdu count but
depends on fill count. Variable fill count is not protected and the
value becomes incorrect if AP sends both the fragmented and normal
packets at the same time. This leads to rx buffer replenish failure
and eventually data stall. To fix this do rx inorder replenish for
fragmented packets similar to normal ones if rx full reorder offload
is enabled.
Change-Id: I144c10be7b45268300b040e07ecb909a1ca113cc
CRs-Fixed: 2289797
Add support to use the action OUI framework to identify vendor APs from
the ini and apply vendor AP specific WARs during CSR join request.
Change-Id: Icb6742bfeb9515c11d61034b795b95b92e833b64
CRs-Fixed: 2254532
Add ENABLE_DBS_CXN_AND_DISABLE_SIMULTANEOUS_SCAN option for the ini
gDualMacFeatureDisable. This is to enable DBS support for the
connection and disable simultaneous scan from upper layer. But DBS
scan remains enabled in FW.
Change-Id: Ic280de2cc63a3775c0d9dd61985ff89df58a4a89
CRs-Fixed: 2288294
Use SIR_MAX_SUPPORTED_BSS macro to decide max number of SME sessions
to avoid timer leak issue as SIR_MAX_SUPPORTED_BSS can be
configured through kbuild.
Change-Id: I86377d43ceb1b5cfcaa7c17a15a4fb300b79246b
CRs-Fixed: 2288864
wait for single event in umac_stop instead of wait for event
completion in which the events can be forcefully get reset
in the event of SSR.
Change-Id: I1925b820c7c292acbc019b058ff51297ad800b88
CRs-Fixed: 2289353
The mac_start() API currently specifies a void pointer for the "start
params" parameter. But both mac_start() and its caller must agree on
the type of this structure, so replace the void pointer with the
actual struct pointer. In the process rename that struct to comply
with the coding style and relocate it to be a part of the MAC Init
API.
Change-Id: I7fc62abbb17d214551ca6ff0cda8b76d218280e3
CRs-Fixed: 2290807
Reduce the number of logs during the SMMU mapping process in
cds_smmu_mem_map_setup by refactoring the logic to reduce the number of
branches.
Change-Id: I1a8b0ece31ab51eaf6f96232b284b61d77c83084
CRs-Fixed: 2291034
The Driver Synchronization Core (DSC) is a set of synchronization
primitives for use by the driver's orchestration layer. It provides APIs
for ensuring safe state transitions (including bring up and tear down)
of major driver objects: a single driver, associated psocs, and their
associated vdevs.
APIs are divided into two categories: mutual exclusion of conflicting
transitions, and operation tracking, blocking, and waiting capabilities.
For part 6, enable the DSC component.
Change-Id: I0ac37f479a4a38e346fb91ad041a4f51ccc6c879
CRs-Fixed: 2290260
Check PF_WAKE_UP_IDLE macro defined to determine the presence of
kernel scheduler APIs for wake up on an idle CPU.
If not, call dummy functions instead.
Change-Id: I34065aa244dc132e228c6e9f764c8eae90d81261
CRs-Fixed: 2168716
In monitor mode, current implementation
uses the preample type, vht_sig_a_1 and vht_sig_a_1
values associated with each mpdu, instead of reusing
the values from the first mpdu, to calculate data rates.
This is causing incorrect rates to be recorded in monitor mode logs
Reuse preample type, vht_sig_a_1 and vht_sig_a_1 of first
mpdu till the last mpdu is reached.
Change-Id: Ia6e5c1b3b0cc8d8b27f16cdfbd469fdba5c4a8f2
CRs-Fixed: 2276766
Separate out HL and LL Rx Data Path in different files
to compile out features cleanly
Change-Id: Ifc0e2d7e740142f0115d1fcd53db2936f7a30979
CRs-Fixed: 2287351
Separate out HL and LL Tx Data Path in different files
to compile out features cleanly.
Change-Id: I9033a5bc83bbc95ff00be3f46dc6eda65eab9e71
CRs-Fixed: 2287346
When the scan is rejected, driver saves the scan reject reason and the
rejected time by converting the jiffies to msec. In case when
HZ is 100 while converting jiffies to msec, jiffies_to_msecs() return
wrapped value of jiffies(in msec). This result value of the current jiffies
(return value of jiffies_to_msecs API) becomes greater than scan reject
time (pHddCtx->last_scan_reject_timestamp) and __wlan_hdd_cfg80211_scan
trigger SSR in case of scan rejection.
Fix is to Use jiffiy directly instead of using jiffies_to_msecs()
while updating scan reject time(pHddCtx->last_scan_reject_timestamp).
Change-Id: Ib86830456fdc48143bf282779216ab94aed11923
CRs-Fixed: 2289992
Currently in driver we are advertising LRO Support as part of
hdd_init_station_mode() with dev->features |= NETIF_F_LRO.
This is not tied up with INI param "LROEnable", to advertise LRO
to kernel. Add INI check for "LROEnable" before advertising LRO.
Change-Id: I6a3940b65e72ae12015d0303c573456d44e1ac9c
CRs-Fixed: 2269590
Per protocol definition, the ssid length in OWE bss’s IE is zero
when in OWE transition mode. And the api wlan_hdd_get_sta_stats
thinks it is invalid ssidlen and returns directly. It causes the
uplayer can not get stats info.
Change-Id: I20eb7aa79ce25a4b66d9be093510eb414d4fca42
CRs-Fixed: 2285542
With the latest android upgrade after the sap is turned off
change interface will switch netdev back to original mode and
starting the adapter in this state will create resources even
when the upper layer is not using the netdev.
Do not start the adapter from the change interface.
Change-Id: I763879ecc84dca4115bca0e4e805b8b4b6108bb8
CRs-Fixed: 2270730
The PLD probe event handler does both probe and reinit. However, the
probe and reinit logics are quite different. Split this shared logic
into two handler functions, one for probe and one for reinit. Update the
PLD probe event handler to invoke the correct handler function based on
the reinit flag received as part of the event.
Change-Id: Id48d18aee0d449b6849297848c2bab96c6e008ae
CRs-Fixed: 2290221
The HDD bus bandwidth infrastructure init/deinit sequence is currently
very sporadic. Startup and re-init initialize it at different point, and
failed to de-initialize it in the case of failure. Likewise, exit and
shutdown de-initialize it at different points. Update the HDD bus
bandwidth init/deinit sequence so that it is uniform and symmetrical in
all situations.
Change-Id: I5312bd340d885aafb8d4e809672eb02afc199781
CRs-Fixed: 2290237
wlan_hdd_cfg80211_sched_scan_stop() currently does not validate the
given adapter or the hdd context. Validate both before performing a
scheduled scan stop operation on said adapter.
Change-Id: I4e0370ad059fbb0371a38300f33dfae7a9f8106d
CRs-Fixed: 2289411
Currently driver allocates buffer of size 10KB which is
getting filled completely in some cases when size of
ll_stats is more than 10KB. Because of this driver
ignores some of the stats and user space does not
get the complete stats.
To address this issue increase the size of the buffer
to 12 KB.
Change-Id: I8c5500545a3c69ecb5ba3b1bb3e7f3338a61714f
CRs-Fixed: 2279495
Use new cfg API for P2P and TDLS WNI configures, and cleanup related
legacy codes. Remove two not use P2P INI configures.
Change-Id: Ie37fd5e598ececba561581952a23601595607b2e
CRs-Fixed: 2286387
When the Nss is set to 2,MCS0-11 is used as default HE MCS config
for 2x2 mode which may not be same as 1x1 HE MCS config.
Use the 1x1 MCS config for Nss setting to 2 to keep the MCS
config same for both streams.
Change-Id: I76157357667696979976983e81f014182dfe769e
CRs-Fixed: 2284467
If any WMA request is queued in wma hold req/vdev resp queue after fw
has crashed and sent the corresponding uevent to HOST, request will
timeout and if at the same time, SSR is also going on, it may lead to
various issues and crashes.
Check whether target is ready or not before queuing any request
in wma hold req/vdev resp queue.
Change-Id: I26b5746e9ba4f57f46b3a5a486bd85ef150d0ee7
CRs-Fixed: 2289004