Replace usage of the below INI Items using MLME CFG instead of HDD config.
gPreventLinkDown
gSelect5GHzMargin
gEnableMemDeepSleep
gEnableCckTxFirOverride
gEnableForceTargetAssert
gEnableLpassSupport
Change-Id: Ib89272c7898db8d0c70a60640e00ca9364a9db74
CRs-Fixed: 2327025
Add the following WMM AC VO ini configs to MLME cfg:
1. CFG_QOS_WMM_INFRA_DIR_AC_VO_NAME
2. CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VO_NAME
3. CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VO_NAME
4. CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VO_NAME
5. CFG_QOS_WMM_INFRA_SBA_AC_VO_NAME
6. CFG_QOS_WMM_INFRA_UAPSD_VO_SRV_INTV_NAME
7. CFG_QOS_WMM_INFRA_UAPSD_VO_SUS_INTV_NAME
Introduce the basic infra APIs related to these configs
from mlme.
Change-Id: I402ff46aad528d7c4bbaa794b6fba498439f8e97
CRs-Fixed: 2327048
Add the basic infra for MLME CFG items and the APIs to be used from
other components for VHT - Part-1.
Change-Id: Ie74bfd42ed3d34cc218f20ee3f9d81dc6af02172
CRs-Fixed: 2322300
Driver unload called as part of "rmmod" which reports bug_on
in hdd_bus_bandwidth_deinit as bus_bw timer still running.
Bus_bw timer is not stopped when rmmod is issued if SAP is
enabled and any STA is connected to SAP.
Stop the bus_bw timer during unload for eSAP_STOP_BSS_EVENT
Change-Id: I0ed8309f25b85ebf8ca1e115cbd7aa1c931571ff
CRs-Fixed: 2323641
Rate limit error log in nan and ndp request handler to avoid
excessive console logging.
Change-Id: I9e9bb7185a77533b03e8a17d64c17371770b9b52
CRs-Fixed: 2326275
Use the new API wlan_reg_chan_has_dfs_attribute
to check dfs channel or not. The old API may return
CHANNEL_STATE_DISABLE if the dfs chan is added to
NOL.
If SAP is not on dfs channel, skip the Radar event
process.
Change-Id: Ie5c87e6fa416658df64da54c276fb87f23ed7efb
CRs-Fixed: 2324649
Presently the ini gReportMaxLinkSpeed has the default value as 2 that
gives the scaled rate to the userspace instead of actual rate. As the
userspace needs the actual rates, this causes a mismatch.
Configure the value of gReportMaxLinkSpeed to 0 so as to send the actual
rates to the userspace.
Change-Id: Ieaa828d1aabaf099c74a9d5093f5d6fab5da01b5
CRs-Fixed: 2317661
When BMPS is already enabled and we have entered the WOW mode,
we start detecting the AP behavior , where the AP
continuously sets the TIM bit and because of which we don’t go
to PM1 mode after waking UP.
With the current ini value, we don't go to sleep for 30 secs,
which should be updated to 90secs.
Change-Id: I3b551011e90761f1dc13197a4795972f495853a6
CRs-Fixed: 2306266
Since refined PMO configures based on converged cfg component, apply
PMO configurations, remove related legacy codes.
Change-Id: I2cdf18c1000d8cc923c80c00bf530b2b0c60563e
CRs-Fixed: 2322185
Resume wlan threads during wlan shutdown process before adapter reset
because adapter reset triggers vdev destroy and vdev destroy sends
del sta self message to lower layers and in absence of wlan threads
this message will not be processed leading to timeout and vdev peer
object leak. Hence add fix to make sure wlan threads are resumed
before resetting adapters during wlan shutdown process.
Change-Id: Idc31b7e41e5d9734b5f6b96fba24948dbfb45c3d
CRs-Fixed: 2321503
QOS action frame is not handled and thus HDD's dscp mapping
are not updated.
Update the HDD's dscp mapping properly once hdd receive
QOS action frame.
Change-Id: I04ba9882767918cfb0c551791783f2b7eac998d5
CRs-Fixed: 2325729
In ol_txrx_peer_get_ref(), console logging is done after holding
spin lock which leads to spinlock lockup.
Avoid excess logging into console while holding spin lock.
Change-Id: Iae4fa6006358e26796ae2c262aca01bec7eacd21
CRs-Fixed: 2325704
Remove the legacy definitions that are related to the WEP
cfg.
Move them to mlme component
Change-Id: Ibcec8adf15123d12ad7c2eb6ed770b44a093673a
CRs-Fixed: 2324046
sme_is_conn_state_connected API is incorrectly places inside
FEATURE_BSS_TRANSITION ifdef causing compilation failure if the
flag FEATURE_BSS_TRANSITION is disabled.
Move sme_is_conn_state_connected outside of FEATURE_BSS_TRANSITION.
Change-Id: I3563d1e24f48990b0e16919a5ddaa9ed71bd53ac
CRs-Fixed: 2325332
in wma_ibss_peer_info_event_handler, the driver has a upper
bound check on num_peers and not a lower bound check.
the num_peers should be a positive value.
Since there is no check to see if num_peers is set to 0,
this check can underflow and result in multiple OOB writes
once the loop has incremented more than 32 times.
Fix is to check whether num_peers is a positive value,
and return if not found true.
Change-Id: I599151cc6720ed931142ad6a519add6957fea467
CRs-Fixed: 2324139
When peer creation fails in wma_create_peer, vdev delete is sent
to the fw and then eWNI_SME_ADD_STA_SELF_RSP is sent to sme.
Here three error cases needs to be handled:
1. The vdev deletion has happened, but the cdp_detach_peer is
not done. So the data path peer remains. Also the vdev_active
flag that was set after vdev creation was not unset.
2. The eWNI_SME_ADD_STA_SELF_RSP msg handler
csr_process_add_sta_session_rsp invokes csr_roam_session_opened
which signals HDD that vdev is created successfully and hdd
calls hdd_vdev_ready and vdev related parameter set commands are
sent to FW for the deleted vdev.
3. Vdev delete is not sent for objmgr peer creation failure in
case of VDEV_TYPE_STA and release vdev object ref count.
Add cdp_vdev_detach() calls during error case and set the
vdev_active flag to false. Handle releasing vdev object ref
count in all needed error case flows.
Propagate the error in wma_vdev_attach() through
csr_roam_session_opened() to HDD and abort the vdev create.
Change-Id: Iec97122d011098fae7ae2a59864fbe8ca8a0980e
CRs-Fixed: 2322212
Need release cmd e_sme_command_del_sta_session before
hdd_sme_close_session_callback.
hdd_sme_close_session_callback will call
qdf_event_set(&adapter->qdf_session_close_event),
hdd_vdev_destroy will destroy vdev after qdf_session_close_event
completed, while csr_release_command will still access vdev.
Change-Id: Idc581bdd4f1d63b4903ee802326474ba83d528e5
CRs-Fixed: 2324616
wlan_hdd_chan_info_cb is using info log level to log debug
message and its leading to excessive console logging since
info logs are logged on console. Reduce the log level to
avoid excessive console logging.
Change-Id: I79f67aec5c223126a0de74965336048dc7d4a547
CRs-Fixed: 2323586
While handling the WMI_VDEV_START_RESP_EVENTID WMI FW event a reachable
QDF_BUG() can occur, because the message coming from out is not
reliable.
Change-Id: I9a142152a5d65e8fa25590eac1bc63279a1de4ba
CRs-Fixed: 2321490
When wma_create_peer is called, driver checks for
cds_is_target_ready and the macro CDS_DRIVER_STATE_FW_READY is
unset during the wlan_hdd_pld_uevent. This results in race
condition where the wma_peer_create fails due to
cds_is_target_ready() failure and wma_vdev_delete is sent from
wma_vdev_attach. In wmi_stopinprogress is set when firmware is
down. But this is set only after a small delay and the vdev
commands reach the fw, which results in a race condition.
Remove the cds_is_target_ready() call from wma_create_peer.
Place the call to wma_wmi_stop() to set the wmi_stopinprogress
flag immediately after the wlan_hdd_pld_uevent is received.
Change-Id: Iea53931771afd93ffaeabf704bbaffcf2460284f
CRs-Fixed: 2320538
Currently PHY mode is not getting updated and it is being set as
0, which is resulting in an invalid channel setting to FW
for LOWI.
To address this issue update the PHY mode correctly.
Change-Id: I1f650268e2ba1814a435994d558b4b68030eb8c1
CRs-Fixed: 2318551
Regulatory data can change without notice due to various conditions in the
WLAN sub-system. Therefore, to protect integrity of regulatory data,
always use a copy of the data.
Change-Id: If2c5c45c421e7a88285d72ea94d9ad172d22fb7e
CRs-Fixed: 2321516
Currently the number of scan entries populated from the scan results
of RRM issued scan for beacon report is limited to 4 entries in
sme_rrm_send_scan_result API. This is inspite of the fact that the
API sme_rrm_send_beacon_report_xmit_ind can handle more than 4 results
and will do the fragmentation of 4 results per frame before sending
it to the RRM.
Remove the limit of 4 entries in sme_rrm_send_scan_result and send
all the valid scan result entries to RRM.
Change-Id: I32448616a9e5f19ee816d60db8fef6e6c2f8908b
CRs-Fixed: 2321077
Priority Queue gets paused due to descriptor deficiency which
needs to be unpaused after distributing descriptors from a
source pool to deficient pool.
Unpause the Priority Queue of deficient pool when avail->desc
count is more than start_th.
Change-Id: Ia91fdd0ac39bf8a4ac42dafa42d346993bf6a38e
CRs-Fixed: 2318031
Currently when the supplicant sends a connect with bssid_hint and
prev_bssid, driver issues a roam_invoke (fast reassoc) command to the
FW. However, when this connect is received in the supplicant context
and if the driver is currently processing a disassoc/deauth from the
AP in the mc thread, then the CSR roam connection state would not be
associated but the HDD STA context connection state would still be
associated. In this scenario, since the disconnection is in progress
and VDEV Down might already be sent to the FW, the roam_invoke command
is ignored and FW does not send any response. However the driver
assumes that roaming is in progress and blocks all incoming scan/
connect requests from supplicant leading to a state where no further
connections can go through.
In hdd_reassoc, check the CSR Connection state also to check if
the current state is associated and then issue roam_invoke to FW.
Change-Id: I321e99b060d6ce22517a3dd604b0f4d08dd5918d
CRs-Fixed: 2319641
During CAC wait if radar indication is found, SAP try to switch to
new channel. If this channel switch fails, SAP is stopped
internally.
This stopped indication is not handled if VDEV state is
START_RESTART_PROGRESS and thus vdev down is not sent to vdev FSM.
Handle SAP stop in START_RESTART_PROGRESS vdev state.
Change-Id: I92e48cc9a85249c88315fbb09fe1a61bd07983fd
CRs-Fixed: 2322996
HDD bus bandwidth handler runs every 100ms and enter, exit logs
at every 100 ms is over flowing driver log buffer hence remove
hdd_enter and hdd_exit logs from __hdd_bus_bw_work_handler.
Change-Id: Ia3a3163eebf442af7371bb0bcd09bccff1f199d9
CRs-Fixed: 2323286
HDD config params are getting used before creating and storing psoc
in hdd context which may cause NULL pointer dereference of psoc.
To mitigate this create psoc and parse cfg ini params just after
cfg_parse() in hdd_context_create().
Change-Id: Ida2b81eef0ebbfba2749ca89b63980201830a5e2
CRs-Fixed: 2321959
wlan_crypto_set_vdev_param() used in hdd_populate_crypto_auth_type(),
hdd_populate_crypto_akm_type() and hdd_populate_crypto_cipher_type()
is not defined when CONFIG_CRYPTO_COMPONENT is disabled
Change-Id: I5bccf391886d4db48a79ba67b903180ea626ad37
CRs-Fixed: 2321455
Restrict the band of PCL to the connected band if
intra band roaming is enabled
Change-Id: I78e9a29d7f8eb226e899e944e4d2980629c52a01
CRs-Fixed: 2302607
If the interface down is issued during the SSR the driver simply
rejects the interface down and silently initializes during the
reinitialization. This can result in resource leakages and also
results in upper layer and driver out-of-sync.
Hence mark the adapter that interface went down during ssr and
cleanup the same during the end of reinitialization so we can
cleanup all the resources.
Change-Id: I426eff3be09abdbafeaf7501df551ea7c49a0f47
CRs-Fixed: 2256433
When zero mac address is configured on nvram, the
hdd_open_adapter accepts the value and passes this zero mac to
csr_session_open where the self mac address is stored as zero
value mac and peer creation is done with the same. When peer
delete is sent to firmware with this mac, firmware asserts.
Add check to validate mac address value is not zero.
Change-Id: I077c29c98ef4e1b11e4c587224acd4405629fa83
CRs-Fixed: 2310499
The name 'hdd_psoc' is misleading, since it is not actually an HDD psoc
context. Rather, it is the Object Manager psoc context. Rename hdd_psoc
to psoc for consistency, and to make room for HDD to have its own psoc
context.
After I1aa67d0554400ed552dc488805ba3421531a26c3, replace the
remaining instances of hdd_psoc and finally remove hdd_psoc from
hdd_context.
Change-Id: If9a4941e18a75563f9ab978bd4b38bd1145e4ada
CRs-Fixed: 2312429
The name 'hdd_psoc' is misleading, since it is not actually an HDD psoc
context. Rather, it is the Object Manager psoc context. Rename hdd_psoc
to psoc for consistency, and to make room for HDD to have its own psoc
context.
After the introduction of hdd_context.psoc in
I9971c478c0d1dc111bb20a7cd6614f73ffb0b15d, replace more instances of
hdd_psoc with psoc.
Change-Id: I1aa67d0554400ed552dc488805ba3421531a26c3
CRs-Fixed: 2315992
Presently, in VHT case also, the HT MCS rate flag is being set when the
SGI is enabled. This is causing the kernel to misinterpret the rates.
Instead of getting the VHT rates, the kernel is enabling the HT rates.
This issue is not present in kernel 4.9 as the preference was given to
VHT rates. For kernel 4.14, the preference is given to HT rates thus
highlighting the problem.
To solve this issue, do not set the RATE_INFO_FLAGS_MCS for SGI enabled.
Change-Id: Icce5b661c3fee21fa4522f06ff54827238e0d255
CRs-Fixed: 2317669
Currently, in __wlan_hdd_cfg80211_dump_survey(), ETSI13 SRD channels
169 and 173 are not considered for filling channel survey info.
To fix this, consider ETSI13 SRD channels when WLAN_FEATURE_DSRC
is not defined.
Change-Id: I71307d58548304df6c1dcfa377dfe677a15db89f
CRs-Fixed: 2319454
In wma_extscan_find_unique_scan_ids() the TLV structures
for param_buf are pulled from the WMI message.
wma_extscan_find_unique_scan_ids parses the data (param_buf)
which is obtained from the firmware.
This parsing logic of rssi_list does not consider the
size of the list and thus results in an OOB access.
Fix is loop for the num_rssi_list and not the num of entries
Change-Id: Icf79b59a17b66ac858222b79589641787022572d
CRs-Fixed: 2316805
Add mlme cfg api functions to get EDCA parameters.
Also remove the legacy CFG item definitions.
Change-Id: I075240279e2cf3fda4424b77b7cfcf50ac9619f4
CRs-Fixed: 2316205
Add CFG items of RTT and PMF as generic items based
on converged cfg component.
Change-Id: Ic95d1e7b052259149704d9faf65ebe5f51536fdf
CRs-Fixed: 2313281
Reorganize the SoC-level PLD callback handlers for improved consistency
and clarity. This includes the following changes:
* Remove wlan_hdd_probe()
* Rename wlan_hdd_remove() to hdd_soc_remove()
* Rename hdd_soc_reinit() to hdd_soc_recovery_reinit()
* Rename wlan_hdd_shutdown() to hdd_soc_recovery_shutdown()
* Add documentation to probe, remove, shutdown, and reinit handlers
* Avoid irq disable if load/unload in progress (in shutdown)
Change-Id: I8212f1cbbeac8cc431e3008097f62196911efdeb
CRs-Fixed: 2320582
When station does LFR3 roaming, tdls will get an extra disconnection
notification which is wrong, remove the notification because tdls has
got the disconnection and connection event when roaming is successful.
Change-Id: I7bc56dae5fd653a44d8ac19be19083528c987d8b
CRs-Fixed: 2308503
While sending the peer assoc to FW, fill up the vht information from
vandor IE, if it is carrying the VHT capability information.
Change-Id: Ifcb299a5b16a14a1b20ae39ffcf3126e8bc20f9b
CRs-Fixed: 2318709
Remove the legacy macro definitions that are related to the
mlme cfg.
Move them to wlan_mlme_public_struct.h
Change-Id: I64f474512463d3ba7ac238b2efd0f4cf2e36999b
CRs-Fixed: 2317750
The MU EDCA params setting message is not processed as the message
type is not present in the handler. Fix the issue by adding the
message type in handler.
Change-Id: Iccc8dabd98cb873cd050fd250dbd77226751c6d8
CRs-Fixed: 2319665
vdev_id data type used in csr_scan_abort_mac_scan()
is declared as uint8_t and is compared with INVALID_VDEV_ID,
a 32 bit integer, which can never be true.
Change-Id: Id5ca042bf24fa3a3f683abae95f5c424824e230f
CRS-Fixed: 2315003
Currently, driver don't fully support MULTI_IF_NAME when two wlan
cards are supported by using two drivers:
1. if two wlan cards are all PCIe, driver can't distinguish
two PCIe cards firmware path.
2. When create hdd sysfs file upper folder, it will repeatly create the
same folder if not use MULTI_IF_NAME to distinguish them. It's not
necessary to distinguish the sub-folder once upper folder is different.
Change-Id: I511de46eec98e736d4e97d5c94ab22592d33f347
CRs-Fixed: 2311137
When TX queues stopped by flow control right before SSR, corresponding
TX complete event used to clear the pause_map bit never come.
Flow control should reset its state during SSR, so clear this bit.
Change-Id: I462de1e20c9e2fc40476fc6b2d999c10e6396d8c
CRs-Fixed: 2274955
QDF is effectively the driver's library for base primitives and data
structures, especially logging. As such, we want to initialize it as
early as possible in the driver loading process such that various
components can leverage this library code as much as possible. To this
end, move QDF init functionality into HDD from CDS, and invoke it first
thing in hdd_driver_load().
Change-Id: I769126ec293f741dced50c0dccc2f49e600aea43
CRs-Fixed: 2317861
The PLD data structures initialized in pld_init() are not used before
PLD registration, and do not need to be the very first thing initialized
in the driver. Move the call to pld_init() to immediately before these
data structures are used for the first time in the PLD registration
process.
Change-Id: I5bee6b03eddfd749758f48a82f5c7f0a870b1504
CRs-Fixed: 2317859
Currently during SSR IPA events such as AP DISCONNECT/
STA DISCONNECT are not sent and also wlan ipa interafces
are not deregistered. After SSR when host sends AP CONNECT/
STA CONNECT and register interafce IPACM will reject as for
previous events before SSR there are no disconnect events.
This leads to data come via exception path instead taking
IPA HW route as interface headers are not registered.
In this fix send IPA UC disconnect events and deregister
interafces during SSR.
Change-Id: I6e617261ec53b7d572023613d212eae057b13b03
CRs-Fixed: 2315828
1. Set all MCL cmds as blocking cmds.
2. Rename WLAN_SER_CMD_STOP_BSS to WLAN_SER_CMD_VDEV_STOP_BSS.
3. Add new binary files and remove old binary files in Kbuild.
4. Disable CONFIG_SERIALIZATION_V1 in Kbuild, switch to new
serialization code.
Change-Id: I46f876e4cbc31881ca0559e4705cddf4a26a46c1
CRs-Fixed: 2315411
If SSR during sme close session when interface down and vdev
destroy, qdf_session_close_event is completed forcely before
peer detached, vdev becomes LOGICALLY_DELETED instead of
destroyed actually for peer ref count is held.
When bss is deleted and eWNI_SME_JOIN_RSP is handled,
is_disconnect_pending-> csr_nonscan_pending_ll_next is called,
wlan_objmgr_get_vdev_by_id_from_psoc return NULL, cmd.vdev is
NULL, NULL pointer dereference will happen.
Change-Id: I790a12483c2b9f967da9ced387935f93a6168e81
CRs-Fixed: 2316960
Implement the usage of MLME CFG infra for BSS Scoring related INI Items
and remove the older INI definitions from HDD.
Change-Id: I0db69138f0439131916a38176b5b21b706ff3671
CRs-Fixed: 2318320
wma_mgmt_nbuf_unmap_cb uses wma handle to check if wmi service
capability for mgmt is supported. If wma handle is freed before
call back is invoked it returns with out doing unmap of nbuf.
Instead of wma handle use psoc object handle which has the
information about wmi service capability support.
Change-Id: Icbdeb155be0fb5d056dd876faa2bd73f78cd9db7
CRs-Fixed: 2317785