Tejun Heo 14a40ffccd sched: replace PF_THREAD_BOUND with PF_NO_SETAFFINITY
PF_THREAD_BOUND was originally used to mark kernel threads which were
bound to a specific CPU using kthread_bind() and a task with the flag
set allows cpus_allowed modifications only to itself.  Workqueue is
currently abusing it to prevent userland from meddling with
cpus_allowed of workqueue workers.

What we need is a flag to prevent userland from messing with
cpus_allowed of certain kernel tasks.  In kernel, anyone can
(incorrectly) squash the flag, and, for worker-type usages,
restricting cpus_allowed modification to the task itself doesn't
provide meaningful extra proection as other tasks can inject work
items to the task anyway.

This patch replaces PF_THREAD_BOUND with PF_NO_SETAFFINITY.
sched_setaffinity() checks the flag and return -EINVAL if set.
set_cpus_allowed_ptr() is no longer affected by the flag.

This will allow simplifying workqueue worker CPU affinity management.

Signed-off-by: Tejun Heo <tj@kernel.org>
Acked-by: Ingo Molnar <mingo@kernel.org>
Reviewed-by: Lai Jiangshan <laijs@cn.fujitsu.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
2013-03-19 13:45:20 -07:00
..
2013-03-02 16:33:54 -08:00
2013-02-21 15:27:22 -08:00
2013-03-01 13:39:00 -08:00
2013-02-22 09:22:19 +02:00
2013-01-02 17:36:10 -08:00
2013-02-21 12:11:44 -08:00
2013-03-02 16:46:07 -08:00
2013-02-21 15:27:22 -08:00
2013-01-03 14:34:06 -08:00
2013-02-25 09:24:55 -05:00
2013-03-12 11:30:04 -07:00
2012-12-24 09:36:38 -07:00
2013-02-21 14:16:27 -03:00
2013-02-26 02:46:08 -05:00
2013-01-24 09:04:04 +01:00
2013-02-22 23:31:31 -05:00
2013-01-25 21:03:54 -08:00
2013-02-27 19:10:21 -08:00
2013-02-06 15:59:47 -05:00
2013-01-29 13:59:57 -05:00
2013-01-10 11:44:38 -06:00
2013-01-29 19:32:58 -08:00
2013-01-21 17:18:20 +10:30
2012-12-25 18:45:06 -05:00
2013-03-02 16:46:07 -08:00
2013-02-25 21:18:18 -08:00
2013-02-21 12:05:51 -08:00
2013-02-21 13:41:04 -08:00
2013-01-24 15:37:26 +01:00
2013-01-03 15:57:14 -08:00
2013-02-26 09:34:29 -08:00
2013-01-23 13:44:00 -05:00
2013-02-21 12:05:51 -08:00
2013-02-19 08:43:34 +01:00
2013-02-03 15:09:26 -05:00
2012-12-18 15:02:13 -08:00
2012-12-18 15:02:14 -08:00
2013-02-10 19:41:08 -05:00
2012-12-24 09:36:38 -07:00
2013-02-14 09:21:15 -05:00
2013-02-21 14:58:40 -08:00
2013-01-15 22:43:15 -08:00
2013-02-08 18:28:04 +01:00
2013-01-25 15:06:01 -08:00
2013-03-13 16:51:36 -07:00