瀏覽代碼

qcacmn: Cleanup assert in mgmt rx reo - Part 5

Cleanup asserts in management Rx reorder module.

Change-Id: Idb304f6a61599f24f1dd8f3ecbffe8dbaae42d6b
CRs-Fixed: 3593932
Edayilliam Jayadev 1 年之前
父節點
當前提交
d6db6d2a66
共有 1 個文件被更改,包括 24 次插入20 次删除
  1. 24 20
      umac/cmn_services/mgmt_txrx/core/src/wlan_mgmt_txrx_rx_reo.c

+ 24 - 20
umac/cmn_services/mgmt_txrx/core/src/wlan_mgmt_txrx_rx_reo.c

@@ -3792,8 +3792,10 @@ mgmt_rx_reo_update_ingress_list(struct mgmt_rx_reo_ingress_list *ingress_list,
 	}
 	}
 
 
 	if (!(frame_desc->type == MGMT_RX_REO_FRAME_DESC_HOST_CONSUMED_FRAME &&
 	if (!(frame_desc->type == MGMT_RX_REO_FRAME_DESC_HOST_CONSUMED_FRAME &&
-	      frame_desc->reo_required) != !new)
-		qdf_assert_always(0);
+	      frame_desc->reo_required) != !new) {
+		mgmt_rx_reo_err("Invalid input");
+		return QDF_STATUS_E_INVAL;
+	}
 
 
 	if (!is_queued) {
 	if (!is_queued) {
 		mgmt_rx_reo_err("Pointer to queued indication is null");
 		mgmt_rx_reo_err("Pointer to queued indication is null");
@@ -3987,8 +3989,10 @@ mgmt_rx_reo_update_egress_list(struct mgmt_rx_reo_egress_list *egress_list,
 	}
 	}
 
 
 	if (!(frame_desc->type == MGMT_RX_REO_FRAME_DESC_HOST_CONSUMED_FRAME &&
 	if (!(frame_desc->type == MGMT_RX_REO_FRAME_DESC_HOST_CONSUMED_FRAME &&
-	      frame_desc->reo_required) != !new)
-		qdf_assert_always(0);
+	      frame_desc->reo_required) != !new) {
+		mgmt_rx_reo_err("Invalid input");
+		return QDF_STATUS_E_INVAL;
+	}
 
 
 	if (!is_queued) {
 	if (!is_queued) {
 		mgmt_rx_reo_err("Pointer to queued indication is null");
 		mgmt_rx_reo_err("Pointer to queued indication is null");
@@ -4033,7 +4037,6 @@ mgmt_rx_reo_update_egress_list(struct mgmt_rx_reo_egress_list *egress_list,
 
 
 	last = qdf_list_last_entry(&reo_egress_list->list,
 	last = qdf_list_last_entry(&reo_egress_list->list,
 				   struct mgmt_rx_reo_list_entry, node);
 				   struct mgmt_rx_reo_list_entry, node);
-	qdf_assert_always(last);
 
 
 	ts_last = mgmt_rx_reo_get_global_ts(last->rx_params);
 	ts_last = mgmt_rx_reo_get_global_ts(last->rx_params);
 
 
@@ -4054,7 +4057,6 @@ mgmt_rx_reo_update_egress_list(struct mgmt_rx_reo_egress_list *egress_list,
 
 
 		list_insertion_pos++;
 		list_insertion_pos++;
 	}
 	}
-	qdf_assert_always(least_greater_entry_found);
 
 
 	ret = mgmt_rx_reo_update_wait_count(&new->wait_count,
 	ret = mgmt_rx_reo_update_wait_count(&new->wait_count,
 					    &least_greater->wait_count);
 					    &least_greater->wait_count);
@@ -4082,7 +4084,6 @@ mgmt_rx_reo_update_egress_list(struct mgmt_rx_reo_egress_list *egress_list,
 		ret = mgmt_rx_reo_handle_egress_overflow(reo_egress_list);
 		ret = mgmt_rx_reo_handle_egress_overflow(reo_egress_list);
 		if (QDF_IS_STATUS_ERROR(ret)) {
 		if (QDF_IS_STATUS_ERROR(ret)) {
 			mgmt_rx_reo_err("Failed to handle egress overflow");
 			mgmt_rx_reo_err("Failed to handle egress overflow");
-			qdf_assert_always(0);
 		}
 		}
 	}
 	}
 
 
@@ -4150,13 +4151,15 @@ mgmt_rx_reo_update_lists(struct mgmt_rx_reo_ingress_list *ingress_list,
 	status = mgmt_rx_reo_update_egress_list(egress_list, frame_desc,
 	status = mgmt_rx_reo_update_egress_list(egress_list, frame_desc,
 						new_entry,
 						new_entry,
 						&is_queued_to_egress_list);
 						&is_queued_to_egress_list);
-	if (QDF_IS_STATUS_ERROR(status))
+	if (QDF_IS_STATUS_ERROR(status)) {
+		mgmt_rx_reo_err("Egress list update failed");
 		goto exit_release_egress_list_lock;
 		goto exit_release_egress_list_lock;
+	}
 
 
 	status = mgmt_rx_reo_check_sanity_list(reo_egress_list);
 	status = mgmt_rx_reo_check_sanity_list(reo_egress_list);
 	if (QDF_IS_STATUS_ERROR(status)) {
 	if (QDF_IS_STATUS_ERROR(status)) {
 		mgmt_rx_reo_err("Sanity check of egress list failed");
 		mgmt_rx_reo_err("Sanity check of egress list failed");
-		qdf_assert_always(0);
+		goto exit_release_egress_list_lock;
 	}
 	}
 
 
 	qdf_spin_unlock_bh(&reo_egress_list->list_lock);
 	qdf_spin_unlock_bh(&reo_egress_list->list_lock);
@@ -4164,13 +4167,15 @@ mgmt_rx_reo_update_lists(struct mgmt_rx_reo_ingress_list *ingress_list,
 	status = mgmt_rx_reo_update_ingress_list(ingress_list, frame_desc,
 	status = mgmt_rx_reo_update_ingress_list(ingress_list, frame_desc,
 						 new_entry,
 						 new_entry,
 						 &is_queued_to_ingress_list);
 						 &is_queued_to_ingress_list);
-	if (QDF_IS_STATUS_ERROR(status))
+	if (QDF_IS_STATUS_ERROR(status)) {
+		mgmt_rx_reo_err("Ingress list update failed");
 		goto exit_release_ingress_list_lock;
 		goto exit_release_ingress_list_lock;
+	}
 
 
 	status = mgmt_rx_reo_check_sanity_list(reo_ingress_list);
 	status = mgmt_rx_reo_check_sanity_list(reo_ingress_list);
 	if (QDF_IS_STATUS_ERROR(status)) {
 	if (QDF_IS_STATUS_ERROR(status)) {
 		mgmt_rx_reo_err("Sanity check of ingress list failed");
 		mgmt_rx_reo_err("Sanity check of ingress list failed");
-		qdf_assert_always(0);
+		goto exit_release_ingress_list_lock;
 	}
 	}
 
 
 	status = QDF_STATUS_SUCCESS;
 	status = QDF_STATUS_SUCCESS;
@@ -4181,16 +4186,17 @@ exit_release_egress_list_lock:
 exit_release_ingress_list_lock:
 exit_release_ingress_list_lock:
 	qdf_spin_unlock_bh(&reo_ingress_list->list_lock);
 	qdf_spin_unlock_bh(&reo_ingress_list->list_lock);
 
 
-	qdf_assert_always(!is_queued_to_ingress_list ||
-			  !is_queued_to_egress_list);
+	if (is_queued_to_ingress_list && is_queued_to_egress_list)
+		mgmt_rx_reo_err("Frame is queued to ingress and egress lists");
 
 
 	*is_queued = is_queued_to_ingress_list || is_queued_to_egress_list;
 	*is_queued = is_queued_to_ingress_list || is_queued_to_egress_list;
 
 
 	queued_list = frame_desc->queued_list;
 	queued_list = frame_desc->queued_list;
-	qdf_assert_always(!(*is_queued &&
-			    queued_list == MGMT_RX_REO_LIST_TYPE_INVALID));
+	if (*is_queued && queued_list == MGMT_RX_REO_LIST_TYPE_INVALID)
+		mgmt_rx_reo_err("Invalid queued list type %d", queued_list);
 
 
-	qdf_assert_always(new_entry || !*is_queued);
+	if (!new_entry && *is_queued)
+		mgmt_rx_reo_err("Queued an invalid frame");
 
 
 	/* Cleanup the entry if it is not queued */
 	/* Cleanup the entry if it is not queued */
 	if (new_entry && !*is_queued) {
 	if (new_entry && !*is_queued) {
@@ -4986,9 +4992,6 @@ mgmt_rx_reo_debug_print_ingress_frame_info(struct mgmt_rx_reo_context *reo_ctx,
 			       num_entries_to_print +
 			       num_entries_to_print +
 			       ingress_frame_debug_info->frame_list_size)
 			       ingress_frame_debug_info->frame_list_size)
 			      % ingress_frame_debug_info->frame_list_size;
 			      % ingress_frame_debug_info->frame_list_size;
-
-		qdf_assert_always(start_index >= 0 &&
-				  start_index < ingress_frame_debug_info->frame_list_size);
 	}
 	}
 
 
 	mgmt_rx_reo_alert_no_fl("Ingress Frame Info:-");
 	mgmt_rx_reo_alert_no_fl("Ingress Frame Info:-");
@@ -5336,7 +5339,8 @@ wlan_mgmt_rx_reo_algo_entry(struct wlan_objmgr_pdev *pdev,
 	qdf_spin_lock(&reo_ctx->reo_algo_entry_lock);
 	qdf_spin_lock(&reo_ctx->reo_algo_entry_lock);
 
 
 	cur_link = mgmt_rx_reo_get_link_id(desc->rx_params);
 	cur_link = mgmt_rx_reo_get_link_id(desc->rx_params);
-	qdf_assert_always(desc->frame_type == IEEE80211_FC0_TYPE_MGT);
+	if (desc->frame_type != IEEE80211_FC0_TYPE_MGT)
+		goto failure;
 
 
 	ret = log_ingress_frame_entry(reo_ctx, desc);
 	ret = log_ingress_frame_entry(reo_ctx, desc);
 	if (QDF_IS_STATUS_ERROR(ret))
 	if (QDF_IS_STATUS_ERROR(ret))