Эх сурвалжийг харах

qcacmn: Cleanup assert in mgmt rx reo - Part 7

Cleanup asserts in management Rx reorder module.

Change-Id: Ia7fcabf770d3b38f62f23b6848b50eb8e4f6827b
CRs-Fixed: 3593934
Edayilliam Jayadev 1 жил өмнө
parent
commit
ed9d84abd6

+ 8 - 1
umac/cmn_services/mgmt_txrx/core/src/wlan_mgmt_txrx_rx_reo.c

@@ -4058,6 +4058,11 @@ mgmt_rx_reo_update_egress_list(struct mgmt_rx_reo_egress_list *egress_list,
 		list_insertion_pos++;
 	}
 
+	if (!least_greater_entry_found) {
+		mgmt_rx_reo_err("Lest greater entry not found");
+		return QDF_STATUS_E_FAILURE;
+	}
+
 	ret = mgmt_rx_reo_update_wait_count(&new->wait_count,
 					    &least_greater->wait_count);
 
@@ -5339,8 +5344,10 @@ wlan_mgmt_rx_reo_algo_entry(struct wlan_objmgr_pdev *pdev,
 	qdf_spin_lock(&reo_ctx->reo_algo_entry_lock);
 
 	cur_link = mgmt_rx_reo_get_link_id(desc->rx_params);
-	if (desc->frame_type != IEEE80211_FC0_TYPE_MGT)
+	if (desc->frame_type != IEEE80211_FC0_TYPE_MGT) {
+		ret = QDF_STATUS_E_INVAL;
 		goto failure;
+	}
 
 	ret = log_ingress_frame_entry(reo_ctx, desc);
 	if (QDF_IS_STATUS_ERROR(ret))

+ 84 - 19
umac/cmn_services/mgmt_txrx/core/src/wlan_mgmt_txrx_rx_reo_i.h

@@ -1075,7 +1075,10 @@ struct mgmt_rx_reo_frame_descriptor {
 static inline bool
 mgmt_rx_reo_list_overflowed(struct mgmt_rx_reo_list *reo_list)
 {
-	qdf_assert_always(reo_list);
+	if (!reo_list) {
+		mgmt_rx_reo_err("reo list is null");
+		return false;
+	}
 
 	return (qdf_list_size(&reo_list->list) > reo_list->max_list_size);
 }
@@ -1090,7 +1093,10 @@ mgmt_rx_reo_list_overflowed(struct mgmt_rx_reo_list *reo_list)
 static inline struct mgmt_rx_reo_context *
 mgmt_rx_reo_get_context_from_ingress_list
 		(const struct mgmt_rx_reo_ingress_list *ingress_list) {
-	qdf_assert_always(ingress_list);
+	if (!ingress_list) {
+		mgmt_rx_reo_err("ingress list is null");
+		return NULL;
+	}
 
 	return qdf_container_of(ingress_list, struct mgmt_rx_reo_context,
 				ingress_list);
@@ -1106,7 +1112,10 @@ mgmt_rx_reo_get_context_from_ingress_list
 static inline struct mgmt_rx_reo_context *
 mgmt_rx_reo_get_context_from_egress_list
 			(const struct mgmt_rx_reo_ingress_list *egress_list) {
-	qdf_assert_always(egress_list);
+	if (!egress_list) {
+		mgmt_rx_reo_err("Egress list is null");
+		return NULL;
+	}
 
 	return qdf_container_of(egress_list, struct mgmt_rx_reo_context,
 				egress_list);
@@ -1122,8 +1131,15 @@ mgmt_rx_reo_get_context_from_egress_list
 static inline uint32_t
 mgmt_rx_reo_get_global_ts(struct mgmt_rx_event_params *rx_params)
 {
-	qdf_assert_always(rx_params);
-	qdf_assert_always(rx_params->reo_params);
+	if (!rx_params) {
+		mgmt_rx_reo_err("rx params is null");
+		return 0;
+	}
+
+	if (!rx_params->reo_params) {
+		mgmt_rx_reo_err("reo params is null");
+		return 0;
+	}
 
 	return rx_params->reo_params->global_timestamp;
 }
@@ -1137,8 +1153,15 @@ mgmt_rx_reo_get_global_ts(struct mgmt_rx_event_params *rx_params)
 static inline uint32_t
 mgmt_rx_reo_get_start_ts(struct mgmt_rx_event_params *rx_params)
 {
-	qdf_assert_always(rx_params);
-	qdf_assert_always(rx_params->reo_params);
+	if (!rx_params) {
+		mgmt_rx_reo_err("rx params is null");
+		return 0;
+	}
+
+	if (!rx_params->reo_params) {
+		mgmt_rx_reo_err("reo params is null");
+		return 0;
+	}
 
 	return rx_params->reo_params->start_timestamp;
 }
@@ -1152,8 +1175,15 @@ mgmt_rx_reo_get_start_ts(struct mgmt_rx_event_params *rx_params)
 static inline uint32_t
 mgmt_rx_reo_get_end_ts(struct mgmt_rx_event_params *rx_params)
 {
-	qdf_assert_always(rx_params);
-	qdf_assert_always(rx_params->reo_params);
+	if (!rx_params) {
+		mgmt_rx_reo_err("rx params is null");
+		return 0;
+	}
+
+	if (!rx_params->reo_params) {
+		mgmt_rx_reo_err("reo params is null");
+		return 0;
+	}
 
 	return rx_params->reo_params->end_timestamp;
 }
@@ -1168,8 +1198,15 @@ mgmt_rx_reo_get_end_ts(struct mgmt_rx_event_params *rx_params)
 static inline uint32_t
 mgmt_rx_reo_get_duration_us(struct mgmt_rx_event_params *rx_params)
 {
-	qdf_assert_always(rx_params);
-	qdf_assert_always(rx_params->reo_params);
+	if (!rx_params) {
+		mgmt_rx_reo_err("rx params is null");
+		return 0;
+	}
+
+	if (!rx_params->reo_params) {
+		mgmt_rx_reo_err("reo params is null");
+		return 0;
+	}
 
 	return rx_params->reo_params->duration_us;
 }
@@ -1184,8 +1221,15 @@ mgmt_rx_reo_get_duration_us(struct mgmt_rx_event_params *rx_params)
 static inline uint16_t
 mgmt_rx_reo_get_pkt_counter(struct mgmt_rx_event_params *rx_params)
 {
-	qdf_assert_always(rx_params);
-	qdf_assert_always(rx_params->reo_params);
+	if (!rx_params) {
+		mgmt_rx_reo_err("rx params is null");
+		return 0;
+	}
+
+	if (!rx_params->reo_params) {
+		mgmt_rx_reo_err("reo params is null");
+		return 0;
+	}
 
 	return rx_params->reo_params->mgmt_pkt_ctr;
 }
@@ -1200,8 +1244,15 @@ mgmt_rx_reo_get_pkt_counter(struct mgmt_rx_event_params *rx_params)
 static inline uint8_t
 mgmt_rx_reo_get_link_id(struct mgmt_rx_event_params *rx_params)
 {
-	qdf_assert_always(rx_params);
-	qdf_assert_always(rx_params->reo_params);
+	if (!rx_params) {
+		mgmt_rx_reo_err("rx params is null");
+		return 0;
+	}
+
+	if (!rx_params->reo_params) {
+		mgmt_rx_reo_err("reo params is null");
+		return 0;
+	}
 
 	return rx_params->reo_params->link_id;
 }
@@ -1216,8 +1267,15 @@ mgmt_rx_reo_get_link_id(struct mgmt_rx_event_params *rx_params)
 static inline uint8_t
 mgmt_rx_reo_get_mlo_grp_id(struct mgmt_rx_event_params *rx_params)
 {
-	qdf_assert_always(rx_params);
-	qdf_assert_always(rx_params->reo_params);
+	if (!rx_params) {
+		mgmt_rx_reo_err("rx params is null");
+		return 0;
+	}
+
+	if (!rx_params->reo_params) {
+		mgmt_rx_reo_err("reo params is null");
+		return 0;
+	}
 
 	return rx_params->reo_params->mlo_grp_id;
 }
@@ -1232,8 +1290,15 @@ mgmt_rx_reo_get_mlo_grp_id(struct mgmt_rx_event_params *rx_params)
 static inline uint8_t
 mgmt_rx_reo_get_pdev_id(struct mgmt_rx_event_params *rx_params)
 {
-	qdf_assert_always(rx_params);
-	qdf_assert_always(rx_params->reo_params);
+	if (!rx_params) {
+		mgmt_rx_reo_err("rx params is null");
+		return 0;
+	}
+
+	if (!rx_params->reo_params) {
+		mgmt_rx_reo_err("reo params is null");
+		return 0;
+	}
 
 	return rx_params->reo_params->pdev_id;
 }