Change default value of pcl_weightage to 10, so that PCL weightage
is used while connecting to a profile to select best BSS.
Change-Id: Ic074e01480d32510fb355846d92cb81d01e6e0d8
CRs-Fixed: 2206140
In STA mode, tx params for auth and assoc req frame
are not updated if minrate is 1 or 6Mbps as these
are the default rates for 2.4G and 5G respectively.
If 2.4G APs min supported rate is 6Mbps, the tx params
are not updated which results in auth and assoc req
frame transmitted at 1Mbps.
Fix is to update tx params if minrate is 6Mbps and
AP is operating in 2.4G.
Change-Id: Ia12c7b13cfb93e2d3b5a4ae124003248fa109e3f
CRs-Fixed: 2205282
The pktlog will be enabled when interface is up. Which might affect
the performance heavily. So do not enable it at the initialization
to avoid this side effect.
Change-Id: Ie03a7e0a77bc5f525ad7ae74bb104a6d1bf21eb7
CRs-Fixed: 2206216
In order to better align with the rest of the driver, rename the
following macros:
* ENTER -> hdd_enter
* ENTER_DEV -> hdd_enter_dev
* EXIT -> hdd_exit
For part 3, migrate usages of EXIT
Change-Id: I0868800b694c92d2ad157394d619c05f89dd222d
CRs-Fixed: 2205840
Fix 2 sub issues:
1. wlan_hdd_update_dbs_scan_and_fw_mode_config and
sme_soc_set_dual_mac_config is called in
hdd_wlan_start_modules->hdd_configure_cds->hdd_features_init,
before hdd_start_adapter, so vdev isn't created yet,
csr_queue_sme_command returned failed
Fixed by moving wlan_hdd_update_dbs_scan_and_fw_mode_config to
end of hdd_start_adapter
2. Rome doesn't support DBS, doesn't support cmd and wmi service
WMI_PDEV_SET_MAC_CONFIG_CMDID. so no response event for the cmd,
the cmd can't be removed from active list. so next cmd:
WMA_ADD_STA_SELF_REQ can't be executed at all, no complete event
for sme_open_session, hdd_init_station_mode failed
Fixed by checking whether support HW DBS before
sme_soc_set_dual_mac_config
Change-Id: Iec2ef7e77e91f332028904c319d24e1ed134306d
CRs-Fixed: 2202262
Some of wext public APIs are declared using extern storage
class specifier which is not needed hence clean up extern
keyword from wext public API declarations from wlan_hdd_wext.h
Change-Id: Ib1fe79a94b62bc457784340a7e930489fffe98f9
CRs-Fixed: 2202699
hdd_notice() is a redundant re-definition of hdd_info(), so remove it.
Replace existing usages with hdd_info() or hdd_debug() as appropriate.
Change-Id: Ie8ce7530c0118eff740975dcce396b68c2115429
CRs-Fixed: 2205815
Invoke green AP start/stop based on the current concurrency
and present state of green AP state machine.
Change-Id: I5648d236e6492f326c7ba9951da550e229352412
CRs-Fixed: 2173952
The hdd_* logging wrappers already inject the calling function and line
number information, but several consumers are wrapping the format string
in a call to FL, which does the same thing. Remove redundant calls to FL
in HDD.
Change-Id: Ieb3e54f707579296fbfdbce74496800cf14ecd0a
CRs-Fixed: 2205912
In order to better align with the rest of the driver, rename the
following macros:
* ENTER -> hdd_enter
* ENTER_DEV -> hdd_enter_dev
* EXIT -> hdd_exit
For part 4, migrate usages of ENTER_DEV
Change-Id: I53628486c9acf5c444c2a97c40ab02324e9a00d7
CRs-Fixed: 2205843
Do not send phyerr filter offload to FW when dfs module is doing
initialization, because in target_if_dfs_set_phyerr_filter_offload
routine GET_WMI_HDL_FROM_PDEV returns NULL at this time.
Configure phyerr filter offload before sap starts.
Change-Id: I60436fc1e142937383a3714c727166bc5fa8d0db
CRs-Fixed: 2205229
The params are passed individually as argument in wmi_unified_attach.
Instead of individual params, use a struct for wmi attach params.
Also pass max commands as param in wmi attach.
CRs-Fixed: 2192801
Change-Id: I28d5985655b436da048d72d33fe0fb4f57e85a50
In order to better align with the rest of the driver, rename the
following macros:
* ENTER -> hdd_enter
* ENTER_DEV -> hdd_enter_dev
* EXIT -> hdd_exit
For part 1, introduce the new macros
Change-Id: I82fed51ed676041352acfeff20923c58ade4a826
CRs-Fixed: 2205830
Debug fs create failure should not fail wifi turn on. Add logic
to allow wifi turn on even if kernel debug fs create API returns
failure.
Change-Id: I02ce1ae4022f6590b29b8666bbe39c7387e8d0dd
CRs-Fixed: 2203329
Qcacld supports multiple driver modules instance generation with
different file names and Kbuild options. Fix driver load time and
compilation errors on this feature.
Change-Id: Ib405e6c475bace31933a28dc64082f2b6c046da9
CRs-fixed: 2197749
Register fw down callback with QDF such that new UMAC
components can check if FW is down or not.
Change-Id: I394860324368d7671f83536791b021109ddb39aa
CRs-Fixed: 2202602
Config ini item gEnableFwSelfRecovery is obsolete and no longer used
hence remove it.
Change-Id: I3b7f8662cb42f74d217dbdf3b2c3512176e2833e
CRs-Fixed: 2202033
When the channel list contains only 2.4Ghz channels and
bandwidth is coming as 80Mhz in __wlan_hdd_cfg80211_do_acs(),
max weight gets assigned to all the channels irrespective of
scan results and channel 1 gets selected in the end.
Downgrade bandwidth to 40Mhz if channel list contains only 2.4Ghz
channels and bandwidth is coming as 80Mhz.
Change-Id: I0e54b5db0020768c219acc0d864e72813c9185e9
CRs-Fixed: 2193438
While the driver is in FTM state, if a PDR is encountered
the driver is not allowed to recover.
Allow the recovery of the driver after PDR in FTM mode.
Change-Id: Ib4ee3970067a9fde5ba12d4dd954774a16ef0255
CRs-Fixed: 2181509
Currenty we are trying to access the ol_rx_thread in
ds_cpu_hotplug_notify function after we shut the thread
down in cds_sched_close function
To address the issue keep a NULL check for the ol_rx_thread
Change-Id: Icddd3ace52bbe773790546d1ace1fd463bc1a7e7
CRs-Fixed: 2200501
qcacld-2.0 to qcacld-3.0 Propagation.
Revert the changes of Validating NLA attr in
wlan_hdd_cfg80211_ocb_set_config API to fix the
dsrc_config fail issue.
CRs-Fixed: 2109727
Change-Id: I5037498a510820a86cba9e61149640a957b46086
In the function wma_passpoint_match_event_handler, fixed param event data
from firmware is filled in the destination buffer and indication is sent
to upper layers. The buffer allocation is done for the size
(wmi_passpoint_event_hdr*) + event->ie_length + event->anqp_length. The
maximum firmware event message size is WMI_SVC_MSG_MAX_SIZE. If either,
ie_length and anqp_length combined is greater than WMI_SVC_MSG_MAX_SIZE or
either of the two exceeds WMI_SVC_MSG_MAC_SIZE, an OOB write will occur in
wma_passpoint_match_event_handler.
Add check to ensure either of the values ie_length or anqp_lenth or
(ie_length + anqp_length) doesnt exceed the WMI_SVC_MAX_SIZE. Return
failure if it exceeds.
Change-Id: I21f473ca0b99ebb8488f2cca3c0774817ea97c3a
CRs-Fixed: 2201190
Randomize bss color within 1 to 63 When hostapd.conf does not specifies
bss color parameter.
Change-Id: I5650d15836e19bd0efc226f86b22a8697e45c59e
CRs-Fixed: 2200411
Set the default addba buffer size to 64 and advertise the default
value in addba response frame.
Change-Id: I8eec73c0907b42414bc742ae01b921b9e4e5b6d5
CRs-Fixed: 2204110
The ucastSig and bcastSig fields in tSirTdlsAddStaRsp date back
to a previous version of the driver that used these signatures to
synchronize the data plane with the control plane. However the current
version of the driver does not use these parameters, so remove them as
the final stage of the plan to completely remove these signatures from
throughout the driver.
Since the legacy tSirTdlsAddStaRsp data structure must exactly match
the converged struct tdls_add_sta_rsp, this change is co-dependent
with the qca-wifi-host-cmn change:
qcacmn: Remove DPU signatures from TDLS Add STA Response
Change-Id: I7750fac9e4870d75358606bea427a5dbab97c665
Change-Id: I765b090fc5dbe9bdaf83b05a72223c0a12f71a18
CRs-Fixed: 2200996
In a previous version of the driver both unicast and broadcast DPU
signatures were used to synchronize the data plane with the control
plane. However the current version of the driver does not use this
synchronization mechanism, so remove propagation of the DPU signatures
from the UMAC. This is part of the plan to completely remove these
signatures from throughout the driver.
Change-Id: I6a1808d0905bb0c4550b16cf2b2157a529caa9e9
CRs-Fixed: 2200997
In a prior version of the driver DPU signatures were used to
synchronize the Data Plane with the Control Plane. The DPU signatures
were provided to HDD by SME via fields in struct csr_roam_info, and
then HDD provided the fields to the Data Plane. But that mechanism is
no longer used and HDD does not read these fields so remove them along
with the logic that is currently used to fill them.
Change-Id: Ib056c20683e6b4f0d969fcff227476d53e040cc0
CRs-Fixed: 2200995
Currently, hdd_reset_all_adapters will set hdd_reassoc_scenario
as "false" no matter what adapter's dev mode. It may pollute the
session.ap's content.
Change-Id: I339982e5454d7ef5bd4325b0901c4a81ceed6ab9
CRs-Fixed: 2201535
Change "qcacmn: Introduce new versions of TDLS peer callbacks"
(Change-Id Id4ea23266b0f3e1480b645c5afce6c17585ccb46 in project
qca-wifi-host-cmn) introduced a new interface which removed an unused
parameter and changed obsolete naming. Update qcacld-3.0 to use this
new interface.
Change-Id: I5c4684ac0a62f314da26f92ece2c9a9874d63634
CRs-Fixed: 2200993
The hdd_reset_all_adapters won't reset the txrx_vdev & tx_fn in the
adapter, which will cause the issue if the OS still deliver the packet
before the txrx_vdev registered again after SSR happens.
Deinit TX/RX module when doing reset all adapters during the SSR
procedure to avoid this problem.
Change-Id: Ia16b488c63b691fe9c3cc8c2cd49913b27cc32f0
CRs-Fixed: 2197248
Aligning structure variables properly can reduce memory requirement
of data segment. Thereby reduces over all memory requirement.
Change-Id: I8b1a704cb6ed852d23111b6ee9d14c883b889a78
CRs-Fixed: 2203674
In the present scenario, the vendor command
wlan_hdd_cfg80211_get_logger_supp_feature has the flag
WIPHY_VENDOR_CMD_NEED_RUNNING set which requires the net device
to be up and running for the API to work. This is not necessary
as the command doesnot need the net dev to be active.
Remove the flag so that the command returns the proper results
even when the net device is not running
Change-Id: I2dd9d801aa474cda2a3f6292d6b94df18797be02
CRs-Fixed: 2202096
Latest driver is not using "gFixedRate" INI anymore and this INI
is not doing any meaningful work, so remove it.
Change-Id: Icf7ef052a722f25c4338dd8086b14ce01c6176d8
CRs-Fixed: 2201799
Add support to send ADDBA request with user configured buffer
size and tid and ADDBA response with user configured buffer
size.
Change-Id: I2a1dfedadeb68a1cfca9a6eba8e7775d0bb51d1a
CRs-Fixed: 2193872
In CSA handling after vdev restarts, program peer_phymode before peer_ch_wd
to firmware, since firmware cannot handle higher channel width than current
peer_phymode.
Change-Id: I12ce1a6e6c0af758e1ecc9c1d272320e5e800983
CRs-Fixed: 2201944
If wlan_hdd_mgmt_tx is called while unload in progress, it is possible
ROC scan can't be canceled, cds_ssr_protect already prevent
wlan_hdd_mgmt_tx running before unloading, we must also prevent it
running after it.
Change-Id: Ic8d981c9be2a2b33079c4e3c9a18a4d8bce48956
CRs-Fixed: 2202026
In lim_tdls_setup_add_sta() even if a pStaDs is already present and
is a non TDLS peer, the driver proceed assuming it as TDLS peer and
update its type and states.
Now when driver tries to delete this non TDLS peer, as its states
and type are modified it fails to properly clean up the peer.
Fix it by allowing only TDLS entry to be updated. Also ignore if a
entry is already present and the operation is TDLS add.
Change-Id: I65fc73d65cdf768fd5b8afd050ca7314fd55c9ff
CRs-Fixed: 2200498
Add compilation flag to compile out HTC credit History
feature cleanly from the cld-3.2 driver binary.
Change-Id: I5f5e73e430d282c99d3077fb82ed1cb8eb79715a
CRs-Fixed: 2190545
Change "qcacld-3.0: Use Request Manager for ioctl getWlanStats"
removed the only user of item hdd_qdf_event in struct hdd_wext_state,
so completely remove it.
Change-Id: Ifc00f6dc396ca5f6e59b3895a6c9467179073218
CRs-Fixed: 2202506
Currently the handling of private ioctl getWlanStats uses a legacy
mechanism for coordinating the request with the response. Change this
to use the HDD Request Manager.
Change-Id: I7e8333cf8d2e651e04509e3370c30d8a6425bdca
CRs-Fixed: 2202504
Function hdd_statistics_cb() is registered as a callback function by
__iw_get_statistics() when calling sme_get_statistics(). Since
hdd_statistics_cb() and __iw_get_statistics() are tightly coupled it
makes sense for them to be co-located, but currently they are
not. Therefore relocate hdd_statistics_cb() to be adjacent to
__iw_get_statistics(). Note that this is a precursor to further
cleanup of this pair of functions.
Change-Id: Ie36d107d9ef2e541444c5fb9d7bfba7e9e82c1e6
CRs-Fixed: 2201907
The parameters to function hdd_roam_register_tdlssta() currently
includes ucastSig. This "signature" parameter dates back to a previous
version of the driver that used signatures to synchronize the data
plane with the control plane. However the current version of the
driver does not use this parameter, so remove it as part of the plan
to completely remove these signatures from throughout the driver.
Change-Id: Iee51d79e58501e3e8312c6c7a21b98c1ae6bf268
CRs-Fixed: 2200886
The parameters to function hdd_softap_register_sta() currently include
ucastSig and bcastSig. These "signature" parameters date back to a
previous version of the driver that used these signatures to
synchronize the data plane with the control plane. However the current
version of the driver does not use these parameters, so remove them as
part of the plan to completely remove these signatures from throughout
the driver.
Change-Id: I1f1f1fb1ef553d36ba0f4902ab29b2b4852ae5ca
CRs-Fixed: 2200356
Add support for HW mode info vendor command which sends
mac id, band, interface id and frequency information for
each MAC provided by driver to userspace.
Change-Id: If1112d29b8781cf5ba0480c84feeb772142f2c0e
CRs-Fixed: 2160531
In IPA offload case, if wlan driver is loaded before IPA uC is ready,
error is returned in hdd_ipa_init, which leads to whole driver load
failure. This is not the case since IPA driver provides wlan driver
a notify callback where IPA will invoke this callback when IPA uC
is ready.
Fix is to not return error if IPA uC is not ready during wlan loading
phase.
Change-Id: I98382abbb3bb3b1176f3be41228ac260c1017c24
CRs-Fixed: 2198998
There is a chance that SSID may be NULL in IE's received by driver
and driver publishes the same in association request which is not
expected. Always consider SSID from supplicant which is valid in
all scenarios to fix this.
Specific scenario:
OWE SSID is hidden in OWE transition mode. When supplicant detects
connection to OWE transition mode, it issues connect with required
SSID to driver. But that ssid does not present in driver scan cache
as it is hidden. Instead of this ssid, driver scan cache has NULL
entry. Driver uses this NULL entry in association request which is
not expected.
Change-Id: I7ceb712db87d6c7f73c7483f74d402b1ab3e30db
CRs-Fixed: 2197532
In wlan_hdd_add_age_ie the mgmt->u.probe_resp.variable is type casted
to qcom_ie_age, before incrementing the mgmt->u.probe_resp.variable
to get the qcom_ie_age pointer. This leads to memory corruption.
Fixed by typecasting the pointer once the qcom_ie_age pointer is
derived by incrementing the offset of qcom_ie_age from
mgmt->u.probe_resp.variable.
Change-Id: Iafcdb5c17f0d9c234687ddcc6f8b9100b21cc957
CRs-Fixed: 2201303
1) When wma_self_peer_remove() API returns failure, driver triggers
recovery without checking if driver unload is in progress which may
cause driver to go in bad state.
2) when wma_self_peer_remove() API returns success, driver releases the
memory accidently as part of I14895b0d3a19b3aaea2299311cc021ea14408f1e
Fix 1st condition by checking if driver unload is in progress. If driver
in unloading then just release the memory and return failure. If driver
is not unloading then just trigger SSR recovery, so FW can recover
silently.
Fix 2nd condition by checking the return status and release the memory
up on failure status code.
CRs-Fixed: 2197657
Change-Id: Ia08dbdac66d8641d22f6a82c29ab1a5b99309214
The memory leak is detected in API csr_process_del_sta_session_command()
for the memory allocation of del_sta_self_req.
SME sends this message from WMA for further processing.
When WMA_DEL_STA_SELF_REQ is processed, wma_self_peer_remove() will be
called for p2p device. If wma_self_peer_remove() API is failed due to
some reason then memory needs to be freed up which is allocated through
csr_process_del_sta_session_command() API which is missing.
For any failure case, release the message memory allocated by SME either
by releasing directly in WMA when response is not required or by sending
failure response which in turn releases the memory when response is
required.
CRs-Fixed: 2192935
Change-Id: I14895b0d3a19b3aaea2299311cc021ea14408f1e
In testbed sta mode the RSNE enc type and auth type may not match the
AP's enc type and auth type and thus the scan filter is unable to match
and find the AP.
Introduce auth and enc type as "ANY" in scan filter. With the auth
and enc type set as ANY, all the AP's matching the BSSID and SSID
will be filtered and the negotiated auth and enc type will be
dependent on AP's auth and enc type.
Change-Id: Ia7d573b393f7883f4c92188133734795be1781aa
CRs-Fixed: 2197223
Duplicate API's are present in HDD and common code to inform the
beacon to kernel. This change removes the duplicate API from HDD
and use common API to inform beacon.
Change-Id: I1916ebd6d3c153f47533cde6a1e2e78ebaae55dc
CRs-Fixed: 2199760
Recent changes in Power Management and Offload (PMO) have removed the
need for a configurable maximum number of WoW filters. Remove the
following relevant fields:
* maxWoWFilters
* CFG_MAX_WOW_FILTERS_MAX
* WMA_STA_WOW_DEFAULT_PTRN_MAX
* max_wow_filters
* ol_ini_info
Change-Id: I99cc74731d6373258dc65473a8342bda0ab2786b
CRs-Fixed: 2199452
There are scenario where indoor channel operations
(like active / passive scan/connect/roam etc)
are not desired / permitted specially in sap case.
Hence add support of disabling indoor channel
on sap start and revert it on sap stop.
Change-Id: Id6e01534532e3076a3e662e6a4f71e8be924165a
CRs-fixed: 2121103
In order to conserve firmware memory when various filtering features are
not in use, update the target configuration provided to firmware based
on the intersection of various filtering features and host
configuration.
Part 1
num_wow_filters = ARP/NS offload enabled ? 2 : 5
bpf_instruction_size - BPF enabled ? 0 (auto) : 0xffffffff
Part 2 (pending firmware support)
pkt_filter_num = Packet Filter enabled ? 12 : 0 (disabled)
Change-Id: Ic6624ff04598b53d8321e4864618b12b9702780f
CRs-Fixed: 2196997
Provide PMO-specific device capabilities to PMO. This allows PMO to do
intersections between configuration and device capabilities.
Change-Id: If0a199f9be466d16cef900a29b14b73a2a4e52d0
CRs-Fixed: 2197828
The packets in the vdev ll_pause queue hasn't been doing the qdf_nbuf_map,
or they might be mapped by other module like ipa. So do not unmap in the
ol_txrx_vdev_detach to avoid the mis-match operation.
Change-Id: I498c09152be95464bc6343f2a48d63e13d621a82
CRs-Fixed: 2198903
This reverts commit I87b635bf4644b54d47bee65307d7484c9e328885.
This should be used for uC loading debug purpose only.
If uC is not loaded yet when WLAN initialization, we are expecting
the registered uC ready callback is invoked after uC loaded later.
Change-Id: Ie6f6d116ff7a23a9b4900c60053a8e76948734d9
CRs-Fixed: 2196878
Currently, driver calls wma_group_num_bss_to_scan_id API from
wma_extscan_cached_results_event_handler to group bss to scan id
table. Without checking return status of wma_group_num_bss_to_scan_id,
HDD callback is called which can lead to NULL pointer de-reference issue
in wlan_hdd_cfg80211_extscan_cached_results_ind if malloc for
t_scan_id_grp->ap fails in wma_group_num_bss_to_scan_id.
Add check for return status of "wma_group_num_bss_to_scan_id" in
wma_extscan_cached_results_event_handler before invoking HDD callback
Change-Id: I457f39404436c54feb4b555f8101895d3c1ae5d7
CRs-Fixed: 2188297
Failure can be observed when waiting for peer deletion
before sending WMI command. Peer deletion in VDEV stop
timeout handler also need to be handled in the scheduler
queues.
Change the logic to wait for peer delete completion
before sending message to scheduler queue to delete VDEV.
Change-Id: I78d3070a73c85d212bc33c346b3e60edf3c016f8
CRs-Fixed: 2187430
Hostapd sends channel list as NULL in do_acs request
when country mode is set to world and hw mode is 11a.
This results in scan to be triggered on all 5g channels
and driver to choose 5g channel as best channel.
Fix is to return error to hostapd if channel list
received is NULL.
Change-Id: I17aacfdbeea9803023a66f54de7b596612ea97c3
CRs-Fixed: 2192858
In the present scenario the function wlan_cfg80211_cleanup_scan_queue
does the code scan queue cleanup during radio detach, leading to access of
freed vdev netdev.
Extend cfg80211 scan cleanup API to support netdev level cleanup. The
second parameter if NULL cleans up all the queues or only the queue of
the specific net dev given.
Change-Id: I2a6b350fe5102b2a5d772dd9a075003ccf3b684c
CRs-Fixed: 2197309
If multiple auth req comes, it added to the header of message queue
but in between mc thread could be processing some beacon frame. while
processing beacon, SAP gets assoc req and adds it to head of message
queue and will be processed first instead of auth req. After sending
of accoc rsp, mc thread will start to process queued auth req, which
is at the top of message queue which will result in deauthentication.
Reverts commit 360c5d590ec8 ("qcacld-3.0: Prioritize connection req
frames in pe queue")
Change-Id: Iaf511be1160e05cfcd9d60f18be4339587308089
CRs-Fixed: 2192836
The checkpatch script has identified instances of "Missing a blank
line after declarations" in HDD, so add them.
Change-Id: I289072b26e0c9c1f8392616438e304b018d9ecd2
CRs-Fixed: 2198555
Currently hdd_roam_deregister_sta() tests the STA to see if it is in
the eConnectionState_IbssDisconnected state, but then doesn't actually
do anything if it is true. Since this is obviously an obsolete test
where the action code has been previously removed, now remove the
actual test.
Change-Id: I6a0077088d87f91b8d8f220049de05a19232995b
CRs-Fixed: 2198554
WoW is always enabled on ROME and ADRASTEA platforms and wow
wake up pattern configuration is dynamic based on vdev type.
All wow wake up patterns are configured at the time of vdev
creation. HDD and SME has obsolete wow enter and exit logic
and hence nuke it.
Change-Id: I228ff5b77a7f9dac579448ada4ebee591d5a0c38
CRs-Fixed: 2198644
In wma_vdev_delete_handler() once vdev req is removed from the
vdev_resp_queue the vdev rsp timer is stopped and freed after
releasing the wake lock and vdev detach callback.
So before vdev rsp timer is stopped it may get expired and
post msg in MC thread. Now once this timer msg is processed it
access the already freed memory.
To fix it stop vdev rsp timer first before releasing the wake
lock and vdev detach callback.
Change-Id: Iface6d1faaa9f801d0da7a70d548eafbd082dc48
CRs-Fixed: 2196338
Current driver posts the high and low Tx TPUT indications to cnss-daemon to
tune the tcp_limit_output_byte system parameter. Add option to disable it.
Change-Id: Ic65fe0bd762024425cabf2f1f07123211dce5dce
CRs-Fixed: 2197112
ICM does not support hw_mode=any at present. When hw_mode is
set to any in hostapd.conf, HOST driver choose one band out of
2.4Ghz and 5Ghz based on "acs_freq_band" ini item and update the
ACS and PCL channel list accordingly. But currently driver does
not send updated band to ICM and so ICM still gets BAND_ALL from
HOST driver which is INVALID for ICM module. As a result ICM
algorithm does not run and channel selection fails.
Send Updated band to ICM and also update channel width accordingly
for 2.4Ghz band as it does not support 80/160/80PLUS80 Mhz.
Change-Id: I13593a3c59c204d1ff7677e67d96d039c9456568
CRs-Fixed: 2196247
qcacld-2.0 to qcacld-3.0 propagation
Send host timestamp to firmware, so that firmware can print the
logs timestamp in sync with host.
Change-Id: I1d4d223aa1c8e207941ab659f69b72a855e3a604
CRs-Fixed: 2193976
Check the total supported mac and phy count for capability
parsing in service ready extension event.
Change-Id: Ibde9040e5adf97d53645f714e5e8981dd1a9d22a
CRs-Fixed: 2194602
The checkpatch script has identified an instance of a non-conformant
block comment in wlan_hdd_main.h, so fix it.
Change-Id: Ie76156601021e2b5e503280337b38792217b7dbc
CRs-Fixed: 2197711
The checkpatch script has identified instances of "else after return"
that is not conformant with the Linux coding style, so fix them.
Change-Id: Ica4ccb1ef1c865089851e928ddeaa27ea54bcb4a
CRs-Fixed: 2197681
The checkpatch script has identified multiple instances of non-conformant
indentation in HDD, so fix them.
Change-Id: Icb28911e54324198d50018fcaf6d6662c9dc161c
CRs-Fixed: 2197006
The checkpatch script has identified two instances of non-conformant
brace placement in HDD, so fix them.
Change-Id: I0c8bbf2258b24c4876c6a8749633b90873980e95
CRs-Fixed: 2196976
Add check for GMAC offload capability wmi_service_gmac_offload_support.
If firmware supports GMAC offload, trim MMIE when driver receives
PMF frame. Otherwise, driver calculates MIC and trims MMIE.
Also, add support for suiteB auth types during roaming in
e_csr_auth_type_to_rsn_authmode.
Change-Id: Id44f44a41297ca3e462d14905f5986f904a639fd
CRs-Fixed: 2185819
While changing the channel, driver needs to add vdev restart instead
of channel switch.
Change-Id: I2d5a40aee2108feda5da5e41c6d18aab6c3a30bc
CRs-Fixed: 2182014
The qdf_str APIs have recently been moved from qdf_mem. Reference the
new qdf_str.h header file where appropriate.
Change-Id: I2be5fa3f511fd6d67b4217243f4b3498321e0a9f
CRs-Fixed: 2196120
Send a ROAM_STOP command to firmware with an explicit
reason code for the failure so that it is not blocked
in WMA before sending it to firmware.
Change-Id: I4d7e2e525c145ca0e990dcef85948285e2186c63
CRs-Fixed: 2182671
When LFR2 roaming on same channel, after pre-auth resp received,
A new PE session is created, currentOperChannel is 0 before
lim_fill_ft_session, not same as currentOperChannel of original
session, so lim_is_in_mcc return true, pre-auth auth result is
not sent to SME/CSR for lim_ft_process_pre_auth_result isn't
called in lim_handle_ft_pre_auth_rsp
Change-Id: If8686c7f73c76655f7ab69c23fb97a7bb540732f
CRs-Fixed: 2195749
Adds logic in frame parser to use default RSN IE fields if optional
fields are not present in IE. So if RSN IE doesn't contain AKM,
group and unicast cipher use the default AKM(AKM_IEEE8021X) and
cipher (CCMP). Also adds sanity checks for RSNE in the frame parser.
Change-Id: I120a29c21407f82aab2c6fcdcaf1095518cb71b5
CRs-Fixed: 2195951
One of the arrays defined in data-path's API is not initialized
and this API assumes that subsequent loop will fill up the array to
correct default value. This assumption is wrong.
Intialize the array "save_peer_id_ref_cnt" in API
"ol_txrx_peer_remove_obj_map_entries" to default value "0" to avoid
any issue.
CRs-Fixed: 2196084
Change-Id: If0080708662fc44e6583823717798a9f505ec1d0
Currently when the MAC address is changed dynamically, invalid MAC
(Broadcast, Multicast and 00:00:00:00:00:00) are getting accepted
and interface is getting up on these invalid addresses because
of this device is trying to connect to AP with the configured
invalid address.
To address this issue reject all invalid MAC addresses
when MAC is dynamically getting configured.
Change-Id: If2530b213b5ffc2ddf0bc728138e1f3200f33286
CRs-Fixed: 2190468
When stop_bss from HDD is received when a SAP channel change request
is currently in progress and channel change response is not yet
received from the FW, the stop_bss would clear the SAP session and
when channel change response is received, we try to start BSS again.
The CSR roam state is also set to JOINING in this case.
As part of start BSS, we queue set key command to SME active command
list. Since the session has been cleared, eWNI_SME_SETCONTEXT_RSP
sent to lim would not be processed in CSR state JOINING leading to set
key command stuck in the active command list.
Do not restart BSS after channel change response if stop BSS is in
progress. Also handle eWNI_SME_SETCONTEXT_RSP and clear the command
queue in CSR Joining state.
Change-Id: I8dbab054746d26cc92fc2274d35ce76a694035fe
CRs-Fixed: 2193505
In MCC tx path, skb is owned by IPA driver, where IPA driver provides
wlan driver directly DMA mapped address. Doing dma unmap of the skb
will lead to skb dma map check failure.
Fix is to skip dma unmap for IPA owned skb and let IPA driver handle
dma unmap.
Change-Id: Ib38ca949ba915785e460c05172b70088a3564b1c
CRs-Fixed: 2189889
In testbed STA mode the RSNE may not match with APUT and thus
driver fails to filter AP from scan cache as PMF capability
mismatch.
With this change driver will ignore PMF capability check and
proceed with connection to send auth and assoc to APUT.
Change-Id: I1bf5947fb08574941eaf1845ec1e36ee9b030dd0
CRs-Fixed: 2195354
Set hw mode to DBS or single MAC for STA+STA and STA+P2P
concurrencies based on channel_select_logic_conc ini.
Change-Id: I46ba4d5cd8f5cda71d0c00be2b612bc851eb5ba4
CRs-Fixed: 2185554
Add ini to select DBS or inter-band MCC channel selection logic
for STA+STA and STA+P2P connections.
Change-Id: I7cfde9592ec210b0a8c812171d2bc6f005e17fb2
CRs-Fixed: 2185552
In __wlan_hdd_cfg80211_do_acs(), driver allocates memory for
ACS channel list without checking if there is already some
memory allocated for channel list or not. When SSR is triggered
before ACS completion, ACS list does not get freed and after
driver reinit, when a new do ACS comes, it allocates a new memory
without deallocating the older memory. This causes memory leak.
Free ACS channel list if already allocated before allocate a new
list.
Change-Id: Ic001c3daac518e97644da00cb82ea1d3fde4b539
CRs-Fixed: 2191839
Change to collect arp packet stats along with
existing hdd stats to debug arp packet related
issues.
Change-Id: Idce70799bd3698dc8a8ecd8cfc8ef7d9bf1f5764
CRs-Fixed: 2019787
When the channel list provided from hostapd contains both
2.4Ghz and 5Ghz channels and channel width is 40Mhz, scan
happens on all the 2.4Ghz and 5Ghz channels and ACS algo
runs on all the channels to find the best channel for
starting SAP in 40Mhz. If a 2.4Ghz is selected, an OBSS
scan happens on all the 2.4Ghz channels to check if there
is any legacy BSS present on any overlapping channel. If
any BSS is found, channel width fallbacks to 20Mhz and
SAP gets started in 20Mhz bw instead of 40Mhz. This is
generally the case with 2.4Ghz whereas there is no such
issue in 5Ghz channels.
Avoid 2.4Ghz channels for starting SAP in 40Mhz bw by
assigning max weight to all the 2.4Ghz channels if 5Ghz
channels are also present in the channel list provided
from hostapd.
Change-Id: I079d20b912282c9db5c9b51b1ed4b85a4aa9c5df
CRs-Fixed: 2186658
qcacld-2.0 to qcacld-3.0 propagation.
Validate the avoid frequency channel list of
QCA_NL80211_VENDOR_SUBCMD_AVOID_FREQUENCY command and update the
driver's unsafe channel list with the channels received in the command.
Change-Id: I1a10e668bf6fe6dbb22f7f2f8aef929fc6e7fc65
CRs-Fixed: 2187477
The Android Packet Filter (APF) is the preferred method for filtering
packets, but the legacy Packet Filter may also be used. In order to
encourage the use of APF over Packet Filter, disable Packet Filter by
default. Customers may still enable Packet Filter via setting
gDisablePacketFilter=0 via ini configuration.
Change-Id: I581a4001167571efbc7c1c1738c5585e4bde0611
CRs-Fixed: 2195111
If force SCC is enabled and there is a STA connection, trim the
ACS channel list on the band on which STA connection is present.
Change-Id: Ibd580a7afdcdfc5fb4398ada547565e229d59c70
CRs-Fixed: 2191792
PE is not freeing the second level of allocated memory during MC
thread message queue flush logic and hence leaking the memory.
Free second level of allocated memory in pe_free_message such
that message posted from WMA is still freed even if MC thread is
shutdown during driver unload/SSR.
Change-Id: I6a88d3b331c29496bc7c1d9e451c97206a2b85cf
CRs-Fixed: 2192884
After successful connection, if interface down(STA) happens on DUT
and if AP changes data rates before interface up happens, there
is a possibility of STA to send packets at older data rates, because
of holding older scan results in SME scan cache. This results in using
stale scan result even after wifi turn off and on. If stale scan result
is used and if AP has updated some params like rates DUT will not be
using those supported rates for tx which is an issue.
To mitigate this issue, flush scan results on STA interface down.
Also, make sure there are no other STA interfaces before flushing
scan results.
Change-Id: I3505c128276fa8e5e05ea5d9110eb75275a746e9
CRs-Fixed: 2171523
If force rsne is set i.e testbed STA mode, the auth type and
encryption type set in RSNE provided, may not match with the AP.
In this case driver will not find the AP in filtered scan result
using the encryption and auth type provided in RSNE.
Thus no Assoc req is sent to AP and the test case fails.
As part of the fix set all authtype and RSN encryptions in filter
so that driver is able to find the AP and send Assoc request.
Change-Id: If99df221b10c5276f902df2f0a52b87e4df1be2c
CRs-Fixed: 2192174
Add ini support to Enable/Disable chain selection optimization
for one chain dtim.
Change-Id: I95999a4204f2d978abc9951688332400b9670f0e
CRs-Fixed: 2189150
In SSR or driver unloading case, directly exit may cause obj
leak. Free the objects in those cases, regardless of
sme_close_session status
Change-Id: Iaf0500aca23917f84c37848cd3abade66b7d7456
CRs-Fixed: 2187579
In sap_update_rssi_bsscount, bss count for channels is
incremented based on offset only and does not consider
if channel on which scan result is received and the
offset channel belong to same band. This could result
in incorrect increment of bss count for some channels
when channels from both bands are present.
Fix is to increment bss count based on channel offset
only if both channels belong to same band and also
choose channel with lower bss count among the channels
having least weight.
Change-Id: Icee978fc40047782c79fe36cba29e3feed3c90aa
CRs-Fixed: 2191324
If Deauth/Disassoc timer is currently running when lim_cleanup
happens due to SSR, the memory allocated for Disassoc/Deauth Req in
mac context is not freed leading to memory leak.
Free Deauth/Disassoc Requests stored in mac context in lim_cleanup
Also check for existing Deauth/Disassoc Request pointers stored in
mac context and free it before assigning it to point to the
current request.
Change-Id: Id7e221bd9d5061ecaa9b73a4fe1dc0f465f68aa9
CRs-Fixed: 2191131
In function wma_vdev_stop_resp_handler, resp_event->vdev_id is
received from the FW and is used to access the interfaces array in
wma_handle. This could lead to OOB read/write if the vdev_id
received from the FW is greater than or equal to max_bssid.
Add check to return failure if resp_event->vdev_id is greater than
or equal to max_bssid in wma_vdev_stop_resp_handler
Change-Id: I1af5312e6c45db3b9ba03fbf45de3d3c2a7fab20
CRs-Fixed: 2185477
Is firmware down check is added explicity in some api's and insome
northbound interfaces it is not added resulting in waiting for
firmware response even when the firmware is down.
Move firmware down check to validate context umbrella where
other driver states are validated.
Change-Id: I42a520f8a573825fde55a40dd03bb942f8a34b9c
CRs-Fixed: 2188938
Currently in case of static driver, wififtmd which writes into the
bootwlan and wifi-service which writes into the state_ctrl_param
executes in parallel. The handler of boot_wlan and state_ctrl_param
in driver intialize this wlan_start_comp variable and wait for its
completion. If one handler is already waiting on this event and other
handler reinitalize the event then it leads to the instability.
To mitigate this issue
1) set the driver loaded state to true and then complete the
wlan_start_comp event.
2) create the state_ctrl_param fs only once the boot_wlan handler
wait is completed for probe.
CRs-Fixed: 2158126
Change-Id: Ia51811a0dd2c5b52f7eee781c4d4620174de3649
In lim_set_rs_nie_wp_aiefrom_sme_start_bss_req_message, length passed
to unpack RSN IE is total length of WPA and RSN IE. So if only WPA IE
is present in assoc request, the RSN IE parser will try to validate the
buffer beyond the RSN IE and might fail as the buffer belongs to WPA IE.
Pass appropriate length to unpack RSN IE.
Change-Id: Ie679e67061e7ac622e8e76b285a32135a60ca6e8
CRs-Fixed: 2189926
As part of csa or opmode IE handling program phymode param after
ch_width since firmware expects channel width to be programmed
before phymode.
Change-Id: I46e3a5e1ce94fa53e27f821e70c29e209e591865
CRs-Fixed: 2186030
If command type is FTM_IOCTL_UNIFIED_UTF_RSP set copy_to_user
flag to return proper data to userspace.
Change-Id: I5f4a1e147f3d1dc162001ceb69fa6823b3158787
CRs-Fixed: 2191046
HDD IOCTL __iw_setnone_getint is not releasing SME config memory
in error case properly and hence leading to memory leak. Fix this
SME config memory leak by properly freeing it before returning from
__iw_setnone_getint.
Change-Id: Ie50259a639edb2cfa63cd3bbe7cac8bb8ebb7654
CRs-Fixed: 2191041
Upon receiving a ROAM_START from the firmware,
cancel the current scans which is similar to
initial connection which will avoid unnecessary
frames to the host during the connection process.
Change-Id: I0c9a4dd7cd4d58e0583cc44b5e33e88728eb70bb
CRs-Fixed: 2174921
In handling assoc request make sure to use VHT IE or vendor VHT IE
appropriately for suBFormee/suBFormer calculation.
Change-Id: I3934a0c7229a8a400d1aa54fe3bf0bc3513d4d70
CRs-Fixed: 2159206
Currently, driver allows multiple acs scan requests at a time. Due to this
race conditions can occur and causes "use after free" issue for variable
channelList. To avoid race condition, driver should allow only one acs scan
request at a time.
Add a new atomic variable to make sure that if one acs scan request
is in process, the driver should reject all further acs scan requests.
Change-Id: I7aa2f4df0dd4c6ca8ff791fe462d142fc7b3e691
CRs-Fixed: 2176354
Packetlog initialization is failing as txrx_get_pldev API is missing,
which returns paketlog object from the given pdev.
Add txrx_get_pldev API to get packet log object for the given pdev.
Change-Id: I2219a5c0964e76637ff8dbef92661b98cd22fb28
CRs-Fixed: 2189211
Currently in hdd_get_sta_connection_in_progress, conn_info.uIsAuthenticated
is used to check if the STA connection is in progress. However, this might
not reflect the actual state and might still lead to the deadlock scenario
fixed in I23ad1fc96882abeaae2d1b051659ea6d24b07428.
Add new API to check for SME state for key exchange in progress and
use it in hdd_get_sta_connection_in_progress.
Change-Id: I7d6199ed8c81a113c4e3f30538d74fb675e730ff
CRs-Fixed: 2189814
lim_preauth_scan_event_handler using sme session id to find pe session,
it may find pe session new create for roaming bss, it will cause
pre-auth roaming command can't dequeue.
Change-Id: I81be20318300ac0e312aa9bcff1a43a47e9a38f7
CRs-Fixed: 2189778
Fix the following race condition,
1. A connection request to driver which requires DBS
2. DBS gets granted, but connection fails, so opportunistic timer
starts off
3. New connection request gets queued in SME & opportunistic timer fires
and SMM HW mode request gets queued behind the connection request
4. Connection is succesful which needs DBS
5. SMM hw mode request gets sent to FW
Change-Id: I0456eba8165015b58b341df934fbfad5fb6eee86
CRs-Fixed: 2186292
It is decided to centralize the logic of programming LI based on
modulated/dynamic DTIM in FW to address the concerns with LFR3.0 in WoW
mode. In order to make it work, following steps need to be performed.
1) If listen interval offload bit is enabled in service ready extension
then,
a) Driver needs to send "gEnableModulatedDTIM", "gMaxLIModulatedDTIM"
and "gEnableDynamicDTIM" params' value to FW via VDEV PARAM up on
each successful association.
b) Driver should not program LI during suspend()/resume()
2) If listen interval offload bit is disabled in service ready extension
then don't trigger above changes.
Change-Id: I6f94c95bd83e5846d7290d5dc752b14da5951a76
CRs-Fixed: 2187597
Reduce the minimum value for the ini nr_offload_cache_timeout to
5 seconds.
This is done to give the user a shorter cache_timeout to trigger
neighbor report frames more frequently.
Change-Id: Ica5359b9e826dad382868de991dcbf204c10a096
CRs-Fixed: 2189034
Size allocate with sizeof(target_paddr_t) which is following DMA
device, but free with sizeof(qdf_nbuf_t) which is a pointer following
system. Maybe not same size on some platform.
Fix it by using same type when allocate/free.
Change-Id: Iadcb68b05ca5798f38c4341323b9fd1e32f5d693
CRs-Fixed: 2189671
Check the current vdev supported bandwidth values agianst peer
opemode update value and if the peer opmode value is greater than
current supported value then do not send the opmode update request
to FW.
Change-Id: I8f360d769b5aafb90061a6a9d18f1f8062e3534e
CRs-Fixed: 2174050
Update the HE STBC capabilty per latest spec and add support
to configure it using INI configuration and ioctl.
Change-Id: I4ecc7b600671c132c1f3968a10fb652a4311f484
CRs-Fixed: 2181114