lim_process_ap_ecsa_timeout() contains a misleading indent. Reduce the
indentation of the affected code.
Change-Id: Ic18ebf88b0a754c8088005d22a9cec94313fa550
CRs-Fixed: 2297513
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
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
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
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
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
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
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
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
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