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>
This commit is contained in:
parent
0d34fb8e93
commit
1a2142afa5
4 changed files with 5 additions and 5 deletions
|
@ -842,7 +842,7 @@ static int __init kernel_init(void * unused)
|
||||||
/*
|
/*
|
||||||
* init can run on any cpu.
|
* init can run on any cpu.
|
||||||
*/
|
*/
|
||||||
set_cpus_allowed_ptr(current, CPU_MASK_ALL_PTR);
|
set_cpus_allowed_ptr(current, cpu_all_mask);
|
||||||
/*
|
/*
|
||||||
* Tell the world that we're going to be the grim
|
* Tell the world that we're going to be the grim
|
||||||
* reaper of innocent orphaned children.
|
* reaper of innocent orphaned children.
|
||||||
|
|
|
@ -167,7 +167,7 @@ static int ____call_usermodehelper(void *data)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* We can run anywhere, unlike our parent keventd(). */
|
/* We can run anywhere, unlike our parent keventd(). */
|
||||||
set_cpus_allowed_ptr(current, CPU_MASK_ALL_PTR);
|
set_cpus_allowed_ptr(current, cpu_all_mask);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Our parent is keventd, which runs with elevated scheduling priority.
|
* Our parent is keventd, which runs with elevated scheduling priority.
|
||||||
|
|
|
@ -110,7 +110,7 @@ static void create_kthread(struct kthread_create_info *create)
|
||||||
*/
|
*/
|
||||||
sched_setscheduler(create->result, SCHED_NORMAL, ¶m);
|
sched_setscheduler(create->result, SCHED_NORMAL, ¶m);
|
||||||
set_user_nice(create->result, KTHREAD_NICE_LEVEL);
|
set_user_nice(create->result, KTHREAD_NICE_LEVEL);
|
||||||
set_cpus_allowed_ptr(create->result, CPU_MASK_ALL_PTR);
|
set_cpus_allowed_ptr(create->result, cpu_all_mask);
|
||||||
}
|
}
|
||||||
complete(&create->done);
|
complete(&create->done);
|
||||||
}
|
}
|
||||||
|
@ -240,7 +240,7 @@ int kthreadd(void *unused)
|
||||||
set_task_comm(tsk, "kthreadd");
|
set_task_comm(tsk, "kthreadd");
|
||||||
ignore_signals(tsk);
|
ignore_signals(tsk);
|
||||||
set_user_nice(tsk, KTHREAD_NICE_LEVEL);
|
set_user_nice(tsk, KTHREAD_NICE_LEVEL);
|
||||||
set_cpus_allowed_ptr(tsk, CPU_MASK_ALL_PTR);
|
set_cpus_allowed_ptr(tsk, cpu_all_mask);
|
||||||
|
|
||||||
current->flags |= PF_NOFREEZE | PF_FREEZER_NOSIG;
|
current->flags |= PF_NOFREEZE | PF_FREEZER_NOSIG;
|
||||||
|
|
||||||
|
|
|
@ -191,7 +191,7 @@ static int pdflush(void *dummy)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Some configs put our parent kthread in a limited cpuset,
|
* Some configs put our parent kthread in a limited cpuset,
|
||||||
* which kthread() overrides, forcing cpus_allowed == CPU_MASK_ALL.
|
* which kthread() overrides, forcing cpus_allowed == cpu_all_mask.
|
||||||
* Our needs are more modest - cut back to our cpusets cpus_allowed.
|
* Our needs are more modest - cut back to our cpusets cpus_allowed.
|
||||||
* This is needed as pdflush's are dynamically created and destroyed.
|
* This is needed as pdflush's are dynamically created and destroyed.
|
||||||
* The boottime pdflush's are easily placed w/o these 2 lines.
|
* The boottime pdflush's are easily placed w/o these 2 lines.
|
||||||
|
|
Loading…
Reference in a new issue