qcacld-3.0: Remove NDP_END_ALL request from serialization queue

Currently NDP_END_ALL request is posted to serialization queue but
not removed even after getting response from firmware. The timer
expires after 4 seconds and the message is gets dequeued as part
of timer handler. Dequeue the request from queue after getting
NDP_HOST_UPDATE from firmware to avoid blocking the northbound
APIs for this 4 seconds.

Change-Id: Ie8045f2460f7ac27732d4070ed79e5a61aab0bd2
CRs-Fixed: 2662869
This commit is contained in:
Srinivas Dasari
2020-04-22 17:58:33 +05:30
committed by nshrivas
parent 11e05a930b
commit 8e652c0e58

View File

@@ -957,16 +957,19 @@ static QDF_STATUS nan_handle_schedule_update(
} }
/** /**
* nan_handle_host_update: Updates Host about NAN Datapath status, called by * nan_handle_host_update() - Updates Host about NAN Datapath status
* NAN modules's Datapath event handler. * @evt: Event data received from firmware
* @vdev: pointer to vdev
* *
* Return: status of operation * Return: status of operation
*/ */
static QDF_STATUS nan_handle_host_update(struct nan_datapath_host_event *evt) static QDF_STATUS nan_handle_host_update(struct nan_datapath_host_event *evt,
struct wlan_objmgr_vdev **vdev)
{ {
struct wlan_objmgr_psoc *psoc; struct wlan_objmgr_psoc *psoc;
struct nan_psoc_priv_obj *psoc_nan_obj; struct nan_psoc_priv_obj *psoc_nan_obj;
*vdev = evt->vdev;
psoc = wlan_vdev_get_psoc(evt->vdev); psoc = wlan_vdev_get_psoc(evt->vdev);
if (!psoc) { if (!psoc) {
nan_err("psoc is NULL"); nan_err("psoc is NULL");
@@ -1074,7 +1077,9 @@ QDF_STATUS nan_datapath_event_handler(struct scheduler_msg *pe_msg)
nan_handle_schedule_update(pe_msg->bodyptr); nan_handle_schedule_update(pe_msg->bodyptr);
break; break;
case NDP_HOST_UPDATE: case NDP_HOST_UPDATE:
nan_handle_host_update(pe_msg->bodyptr); nan_handle_host_update(pe_msg->bodyptr, &cmd.vdev);
cmd.cmd_type = WLAN_SER_CMD_NDP_END_ALL_REQ;
wlan_serialization_remove_cmd(&cmd);
break; break;
default: default:
nan_alert("Unhandled NDP event: %d", pe_msg->type); nan_alert("Unhandled NDP event: %d", pe_msg->type);