浏览代码

qcacmn: Fix return type for scheduler_msg callbacks

This fixes a CFI failure in callback assignment

Change-Id: I760b41b81c006187efb162d410390e1c11878b82
CRs-Fixed: 2643320
Bapiraju Alla 5 年之前
父节点
当前提交
acf898a145

+ 4 - 3
target_if/mlme/vdev_mgr/inc/target_if_vdev_mgr_rx_ops.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2019 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2019-2020 The Linux Foundation. All rights reserved.
  *
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
@@ -152,8 +152,9 @@ QDF_STATUS target_if_vdev_mgr_wmi_event_unregister(
  * target_if_vdev_mgr_rsp_timer_cb() - function to handle vdev related timeouts
  * @vdev_rsp: pointer to vdev response timer
  *
- * Return: NONE
+ * Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_FAILURE on error
  */
-void target_if_vdev_mgr_rsp_timer_cb(struct vdev_response_timer *vdev_rsp);
+QDF_STATUS
+target_if_vdev_mgr_rsp_timer_cb(struct vdev_response_timer *vdev_rsp);
 
 #endif /* __TARGET_IF_VDEV_MGR_RX_OPS_H__ */

+ 10 - 8
target_if/mlme/vdev_mgr/src/target_if_vdev_mgr_rx_ops.c

@@ -32,7 +32,7 @@
 #include <wlan_vdev_mlme_main.h>
 #include <wmi_unified_vdev_api.h>
 
-void target_if_vdev_mgr_rsp_timer_cb(struct vdev_response_timer *vdev_rsp)
+QDF_STATUS target_if_vdev_mgr_rsp_timer_cb(struct vdev_response_timer *vdev_rsp)
 {
 	struct wlan_objmgr_psoc *psoc;
 	struct wlan_lmac_if_mlme_rx_ops *rx_ops;
@@ -46,19 +46,19 @@ void target_if_vdev_mgr_rsp_timer_cb(struct vdev_response_timer *vdev_rsp)
 
 	if (!vdev_rsp) {
 		mlme_err("Vdev response timer is NULL");
-		return;
+		return QDF_STATUS_E_FAILURE;
 	}
 
 	psoc = vdev_rsp->psoc;
 	if (!psoc) {
 		mlme_err("PSOC is NULL");
-		return;
+		return QDF_STATUS_E_FAILURE;
 	}
 
 	rx_ops = target_if_vdev_mgr_get_rx_ops(psoc);
 	if (!rx_ops || !rx_ops->psoc_get_vdev_response_timer_info) {
 		mlme_err("No Rx Ops");
-		return;
+		return QDF_STATUS_E_FAILURE;
 	}
 
 	if (!qdf_atomic_test_bit(START_RESPONSE_BIT, &vdev_rsp->rsp_status) &&
@@ -70,14 +70,14 @@ void target_if_vdev_mgr_rsp_timer_cb(struct vdev_response_timer *vdev_rsp)
 			&vdev_rsp->rsp_status)) {
 		mlme_debug("No response bit is set, ignoring actions :%d",
 			   vdev_rsp->vdev_id);
-		return;
+		return QDF_STATUS_E_FAILURE;
 	}
 
 	vdev_id = vdev_rsp->vdev_id;
 	if (vdev_id >= WLAN_UMAC_PSOC_MAX_VDEVS) {
 		mlme_err("Invalid VDEV_%d PSOC_%d", vdev_id,
 			 wlan_psoc_get_id(psoc));
-		return;
+		return QDF_STATUS_E_FAILURE;
 	}
 
 	vdev_rsp->timer_status = QDF_STATUS_E_TIMEOUT;
@@ -132,13 +132,13 @@ void target_if_vdev_mgr_rsp_timer_cb(struct vdev_response_timer *vdev_rsp)
 	} else {
 		mlme_err("PSOC_%d VDEV_%d: Unknown error",
 			 wlan_psoc_get_id(psoc), vdev_id);
-		return;
+		return QDF_STATUS_E_FAILURE;
 	}
 
 	if (!target_if_vdev_mgr_is_panic_allowed()) {
 		mlme_debug("PSOC_%d VDEV_%d: Panic not allowed",
 			   wlan_psoc_get_id(psoc), vdev_id);
-		return;
+		return QDF_STATUS_SUCCESS;
 	}
 
 	/* Trigger recovery */
@@ -147,6 +147,8 @@ void target_if_vdev_mgr_rsp_timer_cb(struct vdev_response_timer *vdev_rsp)
 		 string_from_rsp_bit(rsp_pos));
 
 	qdf_trigger_self_recovery(psoc, recovery_reason);
+
+	return QDF_STATUS_SUCCESS;
 }
 
 #ifdef SERIALIZE_VDEV_RESP

+ 5 - 3
umac/cmn_services/serialization/src/wlan_serialization_internal.c

@@ -538,7 +538,7 @@ error:
 	return status;
 }
 
-void wlan_serialization_generic_timer_cb(void *arg)
+QDF_STATUS wlan_serialization_generic_timer_cb(void *arg)
 {
 	struct wlan_serialization_timer *timer = arg;
 	struct wlan_serialization_command *cmd = timer->cmd;
@@ -548,13 +548,13 @@ void wlan_serialization_generic_timer_cb(void *arg)
 
 	if (!cmd) {
 		ser_err("Command not found");
-		return;
+		return QDF_STATUS_E_FAILURE;
 	}
 
 	vdev = cmd->vdev;
 	if (!vdev) {
 		ser_err("Invalid vdev");
-		return;
+		return QDF_STATUS_E_FAILURE;
 	}
 
 	ser_err("Active cmd timeout for cmd_type[%d] vdev[%d]",
@@ -572,6 +572,8 @@ void wlan_serialization_generic_timer_cb(void *arg)
 	/* Release the ref taken before the timer was started */
 	if (status == WLAN_SER_CMD_IN_ACTIVE_LIST)
 		wlan_objmgr_vdev_release_ref(vdev, WLAN_SERIALIZATION_ID);
+
+	return QDF_STATUS_SUCCESS;
 }
 
 static QDF_STATUS wlan_serialization_mc_flush_noop(struct scheduler_msg *msg)

+ 3 - 3
umac/cmn_services/serialization/src/wlan_serialization_internal_i.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017-2019 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2017-2020 The Linux Foundation. All rights reserved.
  *
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
@@ -128,9 +128,9 @@ wlan_serialization_dequeue_cmd(struct wlan_serialization_command *cmd,
  * timed-out command from active queue and move any pending command to active
  * queue of same cmd_type.
  *
- * Return: none
+ * Return: QDF_STATUS
  */
-void wlan_serialization_generic_timer_cb(void *arg);
+QDF_STATUS wlan_serialization_generic_timer_cb(void *arg);
 
 /**
  * wlan_serialization_find_and_start_timer() - to find and start the timer

+ 2 - 2
wmi/src/wmi_unified.c

@@ -2153,7 +2153,7 @@ static void wmi_discard_fw_event(struct scheduler_msg *msg)
 	msg->type = 0;
 }
 
-static int wmi_process_fw_event_handler(struct scheduler_msg *msg)
+static QDF_STATUS wmi_process_fw_event_handler(struct scheduler_msg *msg)
 {
 	struct wmi_process_fw_event_params *params =
 		(struct wmi_process_fw_event_params *)msg->bodyptr;
@@ -2170,7 +2170,7 @@ static int wmi_process_fw_event_handler(struct scheduler_msg *msg)
 
 	qdf_mem_free(msg->bodyptr);
 
-	return 0;
+	return QDF_STATUS_SUCCESS;
 }
 
 /**