diff options
author | Rusty Russell <rusty@rustcorp.com.au> | 2009-03-31 00:05:10 -0400 |
---|---|---|
committer | Rusty Russell <rusty@rustcorp.com.au> | 2009-03-30 07:35:11 -0400 |
commit | 1a2142afa5646ad5af44bbe1febaa5e0b7e71156 (patch) | |
tree | 1c76670c82adb46a7726421ad0fcba2994758964 | |
parent | 0d34fb8e93ceba7b6dad0062dbb4a0813bacd75b (diff) |
cpumask: remove dangerous CPU_MASK_ALL_PTR, &CPU_MASK_ALL
Impact: cleanup
(Thanks to Al Viro for reminding me of this, via Ingo)
CPU_MASK_ALL is the (deprecated) "all bits set" cpumask, defined as so:
#define CPU_MASK_ALL (cpumask_t) { { ... } }
Taking the address of such a temporary is questionable at best,
unfortunately 321a8e9d (cpumask: add CPU_MASK_ALL_PTR macro) added
CPU_MASK_ALL_PTR:
#define CPU_MASK_ALL_PTR (&CPU_MASK_ALL)
Which formalizes this practice. One day gcc could bite us over this
usage (though we seem to have gotten away with it so far).
So replace everywhere which used &CPU_MASK_ALL or CPU_MASK_ALL_PTR
with the modern "cpu_all_mask" (a real const struct cpumask *).
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Acked-by: Ingo Molnar <mingo@elte.hu>
Reported-by: Al Viro <viro@zeniv.linux.org.uk>
Cc: Mike Travis <travis@sgi.com>
-rw-r--r-- | init/main.c | 2 | ||||
-rw-r--r-- | kernel/kmod.c | 2 | ||||
-rw-r--r-- | kernel/kthread.c | 4 | ||||
-rw-r--r-- | mm/pdflush.c | 2 |
4 files changed, 5 insertions, 5 deletions
diff --git a/init/main.c b/init/main.c index 6bf83afd654d..1ac7ec78e601 100644 --- a/init/main.c +++ b/init/main.c | |||
@@ -842,7 +842,7 @@ static int __init kernel_init(void * unused) | |||
842 | /* | 842 | /* |
843 | * init can run on any cpu. | 843 | * init can run on any cpu. |
844 | */ | 844 | */ |
845 | set_cpus_allowed_ptr(current, CPU_MASK_ALL_PTR); | 845 | set_cpus_allowed_ptr(current, cpu_all_mask); |
846 | /* | 846 | /* |
847 | * Tell the world that we're going to be the grim | 847 | * Tell the world that we're going to be the grim |
848 | * reaper of innocent orphaned children. | 848 | * reaper of innocent orphaned children. |
diff --git a/kernel/kmod.c b/kernel/kmod.c index a27a5f64443d..f0c8f545180d 100644 --- a/kernel/kmod.c +++ b/kernel/kmod.c | |||
@@ -167,7 +167,7 @@ static int ____call_usermodehelper(void *data) | |||
167 | } | 167 | } |
168 | 168 | ||
169 | /* We can run anywhere, unlike our parent keventd(). */ | 169 | /* We can run anywhere, unlike our parent keventd(). */ |
170 | set_cpus_allowed_ptr(current, CPU_MASK_ALL_PTR); | 170 | set_cpus_allowed_ptr(current, cpu_all_mask); |
171 | 171 | ||
172 | /* | 172 | /* |
173 | * Our parent is keventd, which runs with elevated scheduling priority. | 173 | * Our parent is keventd, which runs with elevated scheduling priority. |
diff --git a/kernel/kthread.c b/kernel/kthread.c index 4fbc456f393d..84bbadd4d021 100644 --- a/kernel/kthread.c +++ b/kernel/kthread.c | |||
@@ -110,7 +110,7 @@ static void create_kthread(struct kthread_create_info *create) | |||
110 | */ | 110 | */ |
111 | sched_setscheduler(create->result, SCHED_NORMAL, ¶m); | 111 | sched_setscheduler(create->result, SCHED_NORMAL, ¶m); |
112 | set_user_nice(create->result, KTHREAD_NICE_LEVEL); | 112 | set_user_nice(create->result, KTHREAD_NICE_LEVEL); |
113 | set_cpus_allowed_ptr(create->result, CPU_MASK_ALL_PTR); | 113 | set_cpus_allowed_ptr(create->result, cpu_all_mask); |
114 | } | 114 | } |
115 | complete(&create->done); | 115 | complete(&create->done); |
116 | } | 116 | } |
@@ -240,7 +240,7 @@ int kthreadd(void *unused) | |||
240 | set_task_comm(tsk, "kthreadd"); | 240 | set_task_comm(tsk, "kthreadd"); |
241 | ignore_signals(tsk); | 241 | ignore_signals(tsk); |
242 | set_user_nice(tsk, KTHREAD_NICE_LEVEL); | 242 | set_user_nice(tsk, KTHREAD_NICE_LEVEL); |
243 | set_cpus_allowed_ptr(tsk, CPU_MASK_ALL_PTR); | 243 | set_cpus_allowed_ptr(tsk, cpu_all_mask); |
244 | 244 | ||
245 | current->flags |= PF_NOFREEZE | PF_FREEZER_NOSIG; | 245 | current->flags |= PF_NOFREEZE | PF_FREEZER_NOSIG; |
246 | 246 | ||
diff --git a/mm/pdflush.c b/mm/pdflush.c index 15de509b68fd..118905e3d788 100644 --- a/mm/pdflush.c +++ b/mm/pdflush.c | |||
@@ -191,7 +191,7 @@ static int pdflush(void *dummy) | |||
191 | 191 | ||
192 | /* | 192 | /* |
193 | * Some configs put our parent kthread in a limited cpuset, | 193 | * Some configs put our parent kthread in a limited cpuset, |
194 | * which kthread() overrides, forcing cpus_allowed == CPU_MASK_ALL. | 194 | * which kthread() overrides, forcing cpus_allowed == cpu_all_mask. |
195 | * Our needs are more modest - cut back to our cpusets cpus_allowed. | 195 | * Our needs are more modest - cut back to our cpusets cpus_allowed. |
196 | * This is needed as pdflush's are dynamically created and destroyed. | 196 | * This is needed as pdflush's are dynamically created and destroyed. |
197 | * The boottime pdflush's are easily placed w/o these 2 lines. | 197 | * The boottime pdflush's are easily placed w/o these 2 lines. |