Lines Matching refs:task
73 struct task_struct *g, *task; in klp_complete_transition() local
110 for_each_process_thread(g, task) { in klp_complete_transition()
111 WARN_ON_ONCE(test_tsk_thread_flag(task, TIF_PATCH_PENDING)); in klp_complete_transition()
112 task->patch_state = KLP_UNDEFINED; in klp_complete_transition()
117 task = idle_task(cpu); in klp_complete_transition()
118 WARN_ON_ONCE(test_tsk_thread_flag(task, TIF_PATCH_PENDING)); in klp_complete_transition()
119 task->patch_state = KLP_UNDEFINED; in klp_complete_transition()
163 void klp_update_patch_state(struct task_struct *task) in klp_update_patch_state() argument
183 if (test_and_clear_tsk_thread_flag(task, TIF_PATCH_PENDING)) in klp_update_patch_state()
184 task->patch_state = READ_ONCE(klp_target_state); in klp_update_patch_state()
242 static int klp_check_stack(struct task_struct *task, const char **oldname) in klp_check_stack() argument
249 ret = stack_trace_save_tsk_reliable(task, entries, ARRAY_SIZE(entries)); in klp_check_stack()
269 static int klp_check_and_switch_task(struct task_struct *task, void *arg) in klp_check_and_switch_task() argument
273 if (task_curr(task) && task != current) in klp_check_and_switch_task()
276 ret = klp_check_stack(task, arg); in klp_check_and_switch_task()
280 clear_tsk_thread_flag(task, TIF_PATCH_PENDING); in klp_check_and_switch_task()
281 task->patch_state = klp_target_state; in klp_check_and_switch_task()
290 static bool klp_try_switch_task(struct task_struct *task) in klp_try_switch_task() argument
296 if (task->patch_state == klp_target_state) in klp_try_switch_task()
311 ret = task_call_func(task, klp_check_and_switch_task, &old_name); in klp_try_switch_task()
318 __func__, task->comm, task->pid); in klp_try_switch_task()
322 __func__, task->comm, task->pid); in klp_try_switch_task()
326 __func__, task->comm, task->pid, old_name); in klp_try_switch_task()
331 __func__, ret, task->comm, task->pid); in klp_try_switch_task()
344 struct task_struct *g, *task; in klp_send_signals() local
350 for_each_process_thread(g, task) { in klp_send_signals()
351 if (!klp_patch_pending(task)) in klp_send_signals()
360 if (task->flags & PF_KTHREAD) { in klp_send_signals()
365 wake_up_state(task, TASK_INTERRUPTIBLE); in klp_send_signals()
371 set_notify_signal(task); in klp_send_signals()
388 struct task_struct *g, *task; in klp_try_complete_transition() local
404 for_each_process_thread(g, task) in klp_try_complete_transition()
405 if (!klp_try_switch_task(task)) in klp_try_complete_transition()
414 task = idle_task(cpu); in klp_try_complete_transition()
416 if (!klp_try_switch_task(task)) { in klp_try_complete_transition()
421 } else if (task->patch_state != klp_target_state) { in klp_try_complete_transition()
423 clear_tsk_thread_flag(task, TIF_PATCH_PENDING); in klp_try_complete_transition()
424 task->patch_state = klp_target_state; in klp_try_complete_transition()
465 struct task_struct *g, *task; in klp_start_transition() local
480 for_each_process_thread(g, task) in klp_start_transition()
481 if (task->patch_state != klp_target_state) in klp_start_transition()
482 set_tsk_thread_flag(task, TIF_PATCH_PENDING); in klp_start_transition()
491 task = idle_task(cpu); in klp_start_transition()
492 if (task->patch_state != klp_target_state) in klp_start_transition()
493 set_tsk_thread_flag(task, TIF_PATCH_PENDING); in klp_start_transition()
506 struct task_struct *g, *task; in klp_init_transition() local
530 for_each_process_thread(g, task) { in klp_init_transition()
531 WARN_ON_ONCE(task->patch_state != KLP_UNDEFINED); in klp_init_transition()
532 task->patch_state = initial_state; in klp_init_transition()
540 task = idle_task(cpu); in klp_init_transition()
541 WARN_ON_ONCE(task->patch_state != KLP_UNDEFINED); in klp_init_transition()
542 task->patch_state = initial_state; in klp_init_transition()
581 struct task_struct *g, *task; in klp_reverse_transition() local
598 for_each_process_thread(g, task) in klp_reverse_transition()
599 clear_tsk_thread_flag(task, TIF_PATCH_PENDING); in klp_reverse_transition()
631 struct task_struct *g, *task; in klp_force_transition() local
637 for_each_process_thread(g, task) in klp_force_transition()
638 klp_update_patch_state(task); in klp_force_transition()