[PATCH] lockdep: clean up completion initializer in smpboot.c
Clean up lockdep on-stack-completion initializer. (This also removes the dependency on waitqueue_lock_key.) Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
d6d897cec2
commit
f86bf9b7bc
2 changed files with 5 additions and 4 deletions
|
@ -771,12 +771,10 @@ static int __cpuinit do_boot_cpu(int cpu, int apicid)
|
||||||
unsigned long start_rip;
|
unsigned long start_rip;
|
||||||
struct create_idle c_idle = {
|
struct create_idle c_idle = {
|
||||||
.cpu = cpu,
|
.cpu = cpu,
|
||||||
.done = COMPLETION_INITIALIZER(c_idle.done),
|
.done = COMPLETION_INITIALIZER_ONSTACK(c_idle.done),
|
||||||
};
|
};
|
||||||
DECLARE_WORK(work, do_fork_idle, &c_idle);
|
DECLARE_WORK(work, do_fork_idle, &c_idle);
|
||||||
|
|
||||||
lockdep_set_class(&c_idle.done.wait.lock, &waitqueue_lock_key);
|
|
||||||
|
|
||||||
/* allocate memory for gdts of secondary cpus. Hotplug is considered */
|
/* allocate memory for gdts of secondary cpus. Hotplug is considered */
|
||||||
if (!cpu_gdt_descr[cpu].address &&
|
if (!cpu_gdt_descr[cpu].address &&
|
||||||
!(cpu_gdt_descr[cpu].address = get_zeroed_page(GFP_KERNEL))) {
|
!(cpu_gdt_descr[cpu].address = get_zeroed_page(GFP_KERNEL))) {
|
||||||
|
|
|
@ -18,6 +18,9 @@ struct completion {
|
||||||
#define COMPLETION_INITIALIZER(work) \
|
#define COMPLETION_INITIALIZER(work) \
|
||||||
{ 0, __WAIT_QUEUE_HEAD_INITIALIZER((work).wait) }
|
{ 0, __WAIT_QUEUE_HEAD_INITIALIZER((work).wait) }
|
||||||
|
|
||||||
|
#define COMPLETION_INITIALIZER_ONSTACK(work) \
|
||||||
|
({ init_completion(&work); work; })
|
||||||
|
|
||||||
#define DECLARE_COMPLETION(work) \
|
#define DECLARE_COMPLETION(work) \
|
||||||
struct completion work = COMPLETION_INITIALIZER(work)
|
struct completion work = COMPLETION_INITIALIZER(work)
|
||||||
|
|
||||||
|
@ -28,7 +31,7 @@ struct completion {
|
||||||
*/
|
*/
|
||||||
#ifdef CONFIG_LOCKDEP
|
#ifdef CONFIG_LOCKDEP
|
||||||
# define DECLARE_COMPLETION_ONSTACK(work) \
|
# define DECLARE_COMPLETION_ONSTACK(work) \
|
||||||
struct completion work = ({ init_completion(&work); work; })
|
struct completion work = COMPLETION_INITIALIZER_ONSTACK(work)
|
||||||
#else
|
#else
|
||||||
# define DECLARE_COMPLETION_ONSTACK(work) DECLARE_COMPLETION(work)
|
# define DECLARE_COMPLETION_ONSTACK(work) DECLARE_COMPLETION(work)
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue