static void cfi_init(struct module *mod)
{
#ifdef CONFIG_CFI_CLANG
	initcall_t *init;
	exitcall_t *exit;

	rcu_read_lock_sched();
	mod->cfi_check = (cfi_check_fn)
		find_kallsyms_symbol_value(mod, "__cfi_check");
	init = (initcall_t *)
		find_kallsyms_symbol_value(mod, "__cfi_jt_init_module");
	exit = (exitcall_t *)
		find_kallsyms_symbol_value(mod, "__cfi_jt_cleanup_module");
	rcu_read_unlock_sched();

	/* Fix init/exit functions to point to the CFI jump table */
	if (init)
		mod->init = *init;
	if (exit)
		mod->exit = *exit;

	cfi_module_add(mod, module_addr_min);
#endif
}
static void cfi_init(struct module *mod)
{
#ifdef CONFIG_CFI_CLANG
	initcall_t *init;
	exitcall_t *exit;

	rcu_read_lock_sched();
	mod->cfi_check = (cfi_check_fn)
		find_kallsyms_symbol_value(mod, "__cfi_check");
	init = (initcall_t *)
		find_kallsyms_symbol_value(mod, "__cfi_jt_init_module");
	exit = (exitcall_t *)
		find_kallsyms_symbol_value(mod, "__cfi_jt_cleanup_module");
	rcu_read_unlock_sched();

	 
	if (init)
		mod->init = *init;
	if (exit)
		mod->exit = *exit;

	cfi_module_add(mod, module_addr_min);
#endif
}