Browse Source

qcacld-3.0: Scan request sent on wrong vdev id

Scan request sent on the invalid vdev id which
triggered assert at firmware.

-Reset sessionid to invalid number in sme open
 session failure scenarios.
-WMA differs vdev delete, if vdev stop
command is pending. Current code process differed
vdev delete only for P2P GO.
-Extend it for other modes so that vdev delete gets
processed later point of time.

Change-Id: I2068e358928fa7157625cf35b3de4ee552299fdb
CRs-Fixed: 1089287
Sandeep Puligilla 8 years ago
parent
commit
e806599392
2 changed files with 2 additions and 3 deletions
  1. 1 0
      core/hdd/src/wlan_hdd_main.c
  2. 1 3
      core/wma/src/wma_dev_if.c

+ 1 - 0
core/hdd/src/wlan_hdd_main.c

@@ -2664,6 +2664,7 @@ QDF_STATUS hdd_init_station_mode(hdd_adapter_t *adapter)
 	if (!rc) {
 		hdd_alert("Session is not opened within timeout period code %ld",
 			rc);
+		adapter->sessionId = HDD_SESSION_ID_INVALID;
 		status = QDF_STATUS_E_FAILURE;
 		goto error_sme_open;
 	}

+ 1 - 3
core/wma/src/wma_dev_if.c

@@ -1522,9 +1522,7 @@ int wma_vdev_stop_resp_handler(void *handle, uint8_t *cmd_param_info,
 				     0);
 		}
 
-		if ((iface->del_staself_req != NULL) &&
-			(iface->type == WMI_VDEV_TYPE_AP) &&
-			(iface->sub_type == WMI_UNIFIED_VDEV_SUBTYPE_P2P_GO)) {
+		if (iface->del_staself_req != NULL) {
 			WMA_LOGA("scheduling defered deletion (vdev id %x)",
 				 resp_event->vdev_id);
 			wma_vdev_detach(wma, iface->del_staself_req, 1);