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
Enable QCA_WIFI_3_0 flag based on CONFIG_WIFI_3_0_ADRASTEA
and not based on CONFIG_ICNSS to enable it in Genoa.
Change-Id: I819fcbb637c4ed302cf71d32e83b113911270750
CRs-Fixed: 2317206