qcacmn: Update scheduler_msg callback type

This fixes a CFI failure in callback assignment.

Currently, the callbacks in scheduler_msg are void function
pointers. Update them to have a defined type as
scheduler_msg_process_fn_t to catch type mismatch during
compilation.

Other changes to conform to this new type include:
	1. Cast callback to qdf_mc_timer_callback_t when
	   referencing, and back when assigning
	2. Cast wlan_serialization_generic_timer_cb to
	   take fit into scheduler_msg
	3. Cast target_if_vdev_mgr_rsp_timer_cb to fit
	   into scheduler_msg

Change-Id: I052bc54826d377ae92f5bcc80ca08afb6f5e01e3
CRs-fixed: 2719975
这个提交包含在:
Lincoln Tran
2020-05-15 15:19:48 -07:00
提交者 nshrivas
父节点 acc60e6ede
当前提交 a86b23ee68
修改 5 个文件,包含 34 行新增13 行删除

查看文件

@@ -158,10 +158,10 @@ 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
* @arg: pointer to argument
*
* Return: none
*/
void target_if_vdev_mgr_rsp_timer_cb(struct vdev_response_timer *vdev_rsp);
void target_if_vdev_mgr_rsp_timer_cb(void *arg);
#endif /* __TARGET_IF_VDEV_MGR_RX_OPS_H__ */

查看文件

@@ -47,7 +47,7 @@ void target_if_vdev_mgr_handle_recovery(struct wlan_objmgr_psoc *psoc,
wlan_psoc_get_id(psoc), vdev_id);
}
void target_if_vdev_mgr_rsp_timer_cb(struct vdev_response_timer *vdev_rsp)
void target_if_vdev_mgr_rsp_timer_cb(void *arg)
{
struct wlan_objmgr_psoc *psoc;
struct wlan_lmac_if_mlme_rx_ops *rx_ops;
@@ -55,6 +55,7 @@ void target_if_vdev_mgr_rsp_timer_cb(struct vdev_response_timer *vdev_rsp)
struct vdev_stop_response stop_rsp = {0};
struct vdev_delete_response del_rsp = {0};
struct peer_delete_all_response peer_del_all_rsp = {0};
struct vdev_response_timer *vdev_rsp = arg;
enum qdf_hang_reason recovery_reason;
uint8_t vdev_id;
uint16_t rsp_pos = RESPONSE_BIT_MAX;
@@ -199,8 +200,16 @@ target_if_vdev_mgr_rsp_cb_mc_ctx(void *arg)
msg.type = SYS_MSG_ID_MC_TIMER;
msg.reserved = SYS_MSG_COOKIE;
msg.callback = target_if_vdev_mgr_rsp_timer_cb;
msg.bodyptr = vdev_rsp;
/* msg.callback will explicitly cast back to qdf_mc_timer_callback_t
* in scheduler_timer_q_mq_handler.
* but in future we do not want to introduce more this kind of
* typecast by properly using QDF MC timer for MCC from get go in
* common code.
*/
msg.callback =
(scheduler_msg_process_fn_t)target_if_vdev_mgr_rsp_timer_cb;
msg.bodyptr = arg;
msg.bodyval = 0;
msg.flush_callback = target_if_vdev_mgr_rsp_flush_cb;