qcacld-3.0: Block NDP_END_ALL req till last NDP_END is received
Firmware sends NDP_HOST_UPDATE event as an immediate response to this request and starts cleaning peers one by one. Once an NDP session is ended (indicating NDP_END to peer + internal cleanup), firmware sends NDP_END_IND to host. Currently, host driver stops the wait timer and change state from NDP end to disconnected upon receiving the NDP_HOST_UPDATE. But firmware might still be in the process of NDP cleanup. As the NDP_END_ALL context is unblocked, driver may send NAN disable request to firmware. This may cause inconsistency in firmware state machine and firmware may drop the ongoing NDP_END request. So, peer doesn't get the NDP_END frame in such cases. Unblock the NDP_END_ALL-wait call only upon last NDP_END indication to avoid such issues. This change moves the major functionality of NDP_HOST_UPDATE processing to last NDP_END indication. Cleanup/remove the processing of NDP_HOST_UPDATE as it's not needed anymore. Change-Id: I19d3e40700c1c0501b9c809820262472bf9bdba4 CRs-Fixed: 3512847
Šī revīzija ir iekļauta:

revīziju iesūtīja
Rahul Choudhary

vecāks
9df82708b2
revīzija
54c2fe240a
@@ -473,8 +473,7 @@ QDF_STATUS ucfg_disable_nan_discovery(struct wlan_objmgr_psoc *psoc,
|
||||
* @ndi_vdev_id: vdev_id of the NDI to be disabled
|
||||
*
|
||||
* Disable all the NDPs present on the given NDI by sending NDP_END_ALL
|
||||
* to firmware. Firmwere sends an immediate response(NDP_HOST_UPDATE) with
|
||||
* ndp_disable param as 1 followed by NDP_END indication for all the NDPs.
|
||||
* to firmware.
|
||||
*
|
||||
* Return: status of operation
|
||||
*/
|
||||
|
Atsaukties uz šo jaunā problēmā
Block a user