Browse Source

qcacld-3.0: Check vdev status before sending vdev up

Check the vdev status if it is already UP before sending the
vdev up command to the firmware. Take care of the below
scenario by not sending the vdev up as the firmware cannot
handle another vdev up command if the vdev is already UP.
1)STA mode VDEV restart is going on and host sends VDEV restart
request to FW.
2)At the same time peer assoc request message is posted from
LIM to WMA.
3)FW WMI VDEV start response is received through
WMI_VDEV_RESTART_RESP_EVENT.
4)In this case 2) will send vdev up and no 3) also will send the
second vdev up.

Change-Id: I7fe97473c26a0653b8328d1dab2e5799cbd21f10
CRs-Fixed: 2131729
Varun Reddy Yeturu 7 years ago
parent
commit
5303e081e2
1 changed files with 5 additions and 0 deletions
  1. 5 0
      core/wma/src/wma_utils.c

+ 5 - 0
core/wma/src/wma_utils.c

@@ -4589,6 +4589,11 @@ QDF_STATUS wma_send_vdev_up_to_fw(t_wma_handle *wma,
 	QDF_STATUS status;
 	struct wma_txrx_node *vdev = &wma->interfaces[params->vdev_id];
 
+	if (wma_is_vdev_up(params->vdev_id)) {
+		WMA_LOGD("vdev %d is already up for bssid %pM. Do not send",
+			 params->vdev_id, bssid);
+		return QDF_STATUS_SUCCESS;
+	}
 	status = wmi_unified_vdev_up_send(wma->wmi_handle, bssid, params);
 	wma_release_wakelock(&vdev->vdev_start_wakelock);