Lines Matching refs:task

83 	struct task_struct *g, *task;  in klp_complete_transition()  local
115 for_each_process_thread(g, task) { in klp_complete_transition()
116 WARN_ON_ONCE(test_tsk_thread_flag(task, TIF_PATCH_PENDING)); in klp_complete_transition()
117 task->patch_state = KLP_UNDEFINED; in klp_complete_transition()
122 task = idle_task(cpu); in klp_complete_transition()
123 WARN_ON_ONCE(test_tsk_thread_flag(task, TIF_PATCH_PENDING)); in klp_complete_transition()
124 task->patch_state = KLP_UNDEFINED; in klp_complete_transition()
175 void klp_update_patch_state(struct task_struct *task) in klp_update_patch_state() argument
195 if (test_and_clear_tsk_thread_flag(task, TIF_PATCH_PENDING)) in klp_update_patch_state()
196 task->patch_state = READ_ONCE(klp_target_state); in klp_update_patch_state()
254 static int klp_check_stack(struct task_struct *task, char *err_buf) in klp_check_stack() argument
266 ret = save_stack_trace_tsk_reliable(task, &trace); in klp_check_stack()
271 __func__, task->comm, task->pid); in klp_check_stack()
283 __func__, task->comm, task->pid, in klp_check_stack()
298 static bool klp_try_switch_task(struct task_struct *task) in klp_try_switch_task() argument
309 if (task->patch_state == klp_target_state) in klp_try_switch_task()
317 rq = task_rq_lock(task, &flags); in klp_try_switch_task()
319 if (task_running(rq, task) && task != current) { in klp_try_switch_task()
321 "%s: %s:%d is running\n", __func__, task->comm, in klp_try_switch_task()
322 task->pid); in klp_try_switch_task()
326 ret = klp_check_stack(task, err_buf); in klp_try_switch_task()
332 clear_tsk_thread_flag(task, TIF_PATCH_PENDING); in klp_try_switch_task()
333 task->patch_state = klp_target_state; in klp_try_switch_task()
336 task_rq_unlock(rq, task, &flags); in klp_try_switch_task()
361 struct task_struct *g, *task; in klp_try_complete_transition() local
376 for_each_process_thread(g, task) in klp_try_complete_transition()
377 if (!klp_try_switch_task(task)) in klp_try_complete_transition()
386 task = idle_task(cpu); in klp_try_complete_transition()
388 if (!klp_try_switch_task(task)) in klp_try_complete_transition()
390 } else if (task->patch_state != klp_target_state) { in klp_try_complete_transition()
392 clear_tsk_thread_flag(task, TIF_PATCH_PENDING); in klp_try_complete_transition()
393 task->patch_state = klp_target_state; in klp_try_complete_transition()
419 struct task_struct *g, *task; in klp_start_transition() local
434 for_each_process_thread(g, task) in klp_start_transition()
435 if (task->patch_state != klp_target_state) in klp_start_transition()
436 set_tsk_thread_flag(task, TIF_PATCH_PENDING); in klp_start_transition()
445 task = idle_task(cpu); in klp_start_transition()
446 if (task->patch_state != klp_target_state) in klp_start_transition()
447 set_tsk_thread_flag(task, TIF_PATCH_PENDING); in klp_start_transition()
458 struct task_struct *g, *task; in klp_init_transition() local
482 for_each_process_thread(g, task) { in klp_init_transition()
483 WARN_ON_ONCE(task->patch_state != KLP_UNDEFINED); in klp_init_transition()
484 task->patch_state = initial_state; in klp_init_transition()
492 task = idle_task(cpu); in klp_init_transition()
493 WARN_ON_ONCE(task->patch_state != KLP_UNDEFINED); in klp_init_transition()
494 task->patch_state = initial_state; in klp_init_transition()
533 struct task_struct *g, *task; in klp_reverse_transition() local
550 for_each_process_thread(g, task) in klp_reverse_transition()
551 clear_tsk_thread_flag(task, TIF_PATCH_PENDING); in klp_reverse_transition()
578 struct task_struct *g, *task; in klp_send_signals() local
583 for_each_process_thread(g, task) { in klp_send_signals()
584 if (!klp_patch_pending(task)) in klp_send_signals()
593 if (task->flags & PF_KTHREAD) { in klp_send_signals()
598 wake_up_state(task, TASK_INTERRUPTIBLE); in klp_send_signals()
604 spin_lock_irq(&task->sighand->siglock); in klp_send_signals()
605 signal_wake_up(task, 0); in klp_send_signals()
606 spin_unlock_irq(&task->sighand->siglock); in klp_send_signals()
623 struct task_struct *g, *task; in klp_force_transition() local
629 for_each_process_thread(g, task) in klp_force_transition()
630 klp_update_patch_state(task); in klp_force_transition()