Browse Source

qcacld-3.0: Modify HDD vdev destroy API to return OS status

HDD APIs should return native OS return code hence modify
hdd_destroy_and_release_vdev() to return native OS return code

Change-Id: I114f40c64df9bdef7035af84971416991375fa4f
CRs-Fixed: 1111443
Rajeev Kumar 8 năm trước cách đây
mục cha
commit
9591d2bd2d

+ 5 - 4
core/hdd/src/wlan_hdd_hostapd.c

@@ -5910,8 +5910,8 @@ QDF_STATUS hdd_init_ap_mode(hdd_adapter_t *pAdapter)
 error_wmm_init:
 	hdd_softap_deinit_tx_rx(pAdapter);
 error_init_ap_mode:
-	status = hdd_release_and_destroy_vdev(pAdapter);
-	if (QDF_IS_STATUS_ERROR(status))
+	ret = hdd_release_and_destroy_vdev(pAdapter);
+	if (ret)
 		hdd_err("vdev delete failed");
 error_vdev_create:
 	wlansap_close(sapContext);
@@ -6056,6 +6056,7 @@ QDF_STATUS hdd_register_hostapd(hdd_adapter_t *pAdapter,
  */
 QDF_STATUS hdd_unregister_hostapd(hdd_adapter_t *pAdapter, bool rtnl_held)
 {
+	int ret;
 	QDF_STATUS status;
 	void *sapContext = WLAN_HDD_GET_SAP_CTX_PTR(pAdapter);
 
@@ -6087,8 +6088,8 @@ QDF_STATUS hdd_unregister_hostapd(hdd_adapter_t *pAdapter, bool rtnl_held)
 		hdd_err("Failed:WLANSAP_close");
 	pAdapter->sessionCtx.ap.sapContext = NULL;
 
-	status = hdd_release_and_destroy_vdev(pAdapter);
-	if (QDF_IS_STATUS_ERROR(status))
+	ret = hdd_release_and_destroy_vdev(pAdapter);
+	if (ret)
 		hdd_err("vdev delete failed");
 
 	EXIT();

+ 8 - 8
core/hdd/src/wlan_hdd_main.c

@@ -2758,8 +2758,8 @@ error_wmm_init:
 error_init_txrx:
 	hdd_unregister_wext(pWlanDev);
 error_register_wext:
-	status = hdd_release_and_destroy_vdev(adapter);
-	if (QDF_IS_STATUS_ERROR(status))
+	ret_val = hdd_release_and_destroy_vdev(adapter);
+	if (ret_val)
 		hdd_err("vdev delete failed");
 error_vdev_create:
 	if (test_bit(SME_SESSION_OPENED, &adapter->event_flags)) {
@@ -2913,8 +2913,8 @@ void hdd_deinit_adapter(hdd_context_t *hdd_ctx, hdd_adapter_t *adapter,
 static void hdd_cleanup_adapter(hdd_context_t *hdd_ctx, hdd_adapter_t *adapter,
 				bool rtnl_held)
 {
+	int ret;
 	struct net_device *pWlanDev = NULL;
-	QDF_STATUS qdf_status;
 
 	if (adapter)
 		pWlanDev = adapter->dev;
@@ -2923,8 +2923,8 @@ static void hdd_cleanup_adapter(hdd_context_t *hdd_ctx, hdd_adapter_t *adapter,
 		return;
 	}
 
-	qdf_status = hdd_release_and_destroy_vdev(adapter);
-	if (QDF_IS_STATUS_ERROR(qdf_status))
+	ret = hdd_release_and_destroy_vdev(adapter);
+	if (ret)
 		hdd_err("vdev delete failed");
 
 	hdd_debugfs_exit(adapter);
@@ -3532,8 +3532,8 @@ void wlan_hdd_reset_prob_rspies(hdd_adapter_t *pHostapdAdapter)
 static void hdd_wait_for_sme_close_sesion(hdd_context_t *hdd_ctx,
 					hdd_adapter_t *adapter)
 {
+	int ret;
 	unsigned long rc;
-	QDF_STATUS qdf_status;
 
 	if (!test_bit(SME_SESSION_OPENED, &adapter->event_flags)) {
 		hdd_err("session is not opened:%d", adapter->sessionId);
@@ -3560,8 +3560,8 @@ static void hdd_wait_for_sme_close_sesion(hdd_context_t *hdd_ctx,
 			clear_bit(SME_SESSION_OPENED, &adapter->event_flags);
 			return;
 		}
-		qdf_status = hdd_release_and_destroy_vdev(adapter);
-		if (QDF_IS_STATUS_ERROR(qdf_status))
+		ret = hdd_release_and_destroy_vdev(adapter);
+		if (ret)
 			hdd_err("vdev delete failed");
 
 		adapter->sessionId = HDD_SESSION_ID_INVALID;

+ 2 - 3
core/hdd/src/wlan_hdd_nan_datapath.c

@@ -112,7 +112,6 @@ static int hdd_close_ndi(hdd_adapter_t *adapter)
 	int rc;
 	hdd_context_t *hdd_ctx = WLAN_HDD_GET_CTX(adapter);
 	uint32_t timeout = WLAN_WAIT_TIME_SESSIONOPENCLOSE;
-	QDF_STATUS qdf_status;
 
 	ENTER();
 
@@ -148,8 +147,8 @@ static int hdd_close_ndi(hdd_adapter_t *adapter)
 			if (!rc)
 				hdd_err("session close timeout");
 
-			qdf_status = hdd_release_and_destroy_vdev(adapter);
-			if (QDF_IS_STATUS_ERROR(qdf_status))
+			rc = hdd_release_and_destroy_vdev(adapter);
+			if (rc)
 				hdd_err("vdev delete failed");
 		}
 	}

+ 4 - 6
core/hdd/src/wlan_hdd_object_manager.c

@@ -130,23 +130,21 @@ int hdd_create_and_store_vdev(struct wlan_objmgr_pdev *pdev,
 	return 0;
 }
 
-QDF_STATUS hdd_release_and_destroy_vdev(hdd_adapter_t *adapter)
+int hdd_release_and_destroy_vdev(hdd_adapter_t *adapter)
 {
 	struct wlan_objmgr_vdev *vdev = adapter->hdd_vdev;
 
 	adapter->hdd_vdev = NULL;
 	if (!vdev)
-		return QDF_STATUS_E_FAILURE;
+		return -EFAULT;
 
 	if (hdd_remove_peer_object(vdev,
 			wlan_vdev_mlme_get_macaddr(vdev))) {
 		hdd_err("Self peer delete fails");
-		return QDF_STATUS_E_FAILURE;
+		return -EINVAL;
 	}
 
-	wlan_objmgr_vdev_obj_delete(vdev);
-
-	return QDF_STATUS_SUCCESS;
+	return qdf_status_to_os_return(wlan_objmgr_vdev_obj_delete(vdev));
 }
 
 QDF_STATUS hdd_add_peer_object(struct wlan_objmgr_vdev *vdev,

+ 2 - 2
core/hdd/src/wlan_hdd_object_manager.h

@@ -126,9 +126,9 @@ int hdd_create_and_store_vdev(struct wlan_objmgr_pdev *pdev,
  *
  * This API deletes vdev object and release its reference from hdd adapter
  *
- * Return: QDF_STATUS
+ * Return: 0 for success, negative error code for failure
  */
-QDF_STATUS hdd_release_and_destroy_vdev(hdd_adapter_t *adapter);
+int hdd_release_and_destroy_vdev(hdd_adapter_t *adapter);
 
 /**
  * hdd_add_peer_object() - Create and add the peer object to the vdev