diff --git a/include/linux/pid.h b/include/linux/pid.h index 359121086de1891b6dde0e7eeea0e9328f7fbde7..8cf9b11ed2649906542f9aa30b1464afd2c32338 100644 --- a/include/linux/pid.h +++ b/include/linux/pid.h @@ -119,4 +119,17 @@ extern void FASTCALL(free_pid(struct pid *pid)); 1; }) ); \ } +#define do_each_pid_task(pid, type, task) \ + if ((task = pid_task(pid, type))) { \ + prefetch(pid_next(task, type)); \ + do { + +#define while_each_pid_task(pid, type, task) \ + } while (pid_next(task, type) && ({ \ + task = pid_next_task(task, type); \ + rcu_dereference(task); \ + prefetch(pid_next(task, type)); \ + 1; }) ); \ + } + #endif /* _LINUX_PID_H */