/* Calls the function @func when the task is currently running. This might be on the current CPU, which just calls the function directly  */
void task_oncpu_function_call(struct task_struct *p, void(*func)(void *info), void *info)
/* Calls the function @func when the task is currently running. This might be on the current CPU, which just calls the function directly  */
void task_oncpu_function_call(struct task_struct *p, void(*func)(void *info), void *info)
{
	int cpu;
	preempt_disable();
	cpu = task_cpu(p);
	if (task_curr(p))
		smp_call_function_single(cpu, func, info, 1);
	preempt_enable();
}