| Date | Mon, 29 May 2006 23:26:35 +0200 | From | Ingo Molnar <> | Subject | [patch 43/61] lock validator: special locking: completions |
| |
From: Ingo Molnar <mingo@elte.hu>
teach special (multi-initialized) locking code to the lock validator. Has no effect on non-lockdep kernels.
Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Arjan van de Ven <arjan@linux.intel.com> --- --- include/linux/completion.h | 6 +----- kernel/sched.c | 8 ++++++++ 2 files changed, 9 insertions(+), 5 deletions(-)
Index: linux/include/linux/completion.h =================================================================== --- linux.orig/include/linux/completion.h +++ linux/include/linux/completion.h @@ -21,11 +21,7 @@ struct completion { #define DECLARE_COMPLETION(work) \ struct completion work = COMPLETION_INITIALIZER(work) -static inline void init_completion(struct completion *x) -{ - x->done = 0; - init_waitqueue_head(&x->wait); -} +extern void init_completion(struct completion *x); extern void FASTCALL(wait_for_completion(struct completion *)); extern int FASTCALL(wait_for_completion_interruptible(struct completion *x)); Index: linux/kernel/sched.c =================================================================== --- linux.orig/kernel/sched.c +++ linux/kernel/sched.c @@ -3569,6 +3569,14 @@ __wake_up_sync(wait_queue_head_t *q, uns } EXPORT_SYMBOL_GPL(__wake_up_sync); /* For internal use only */ +void init_completion(struct completion *x) +{ + x->done = 0; + __init_waitqueue_head(&x->wait); +} + +EXPORT_SYMBOL(init_completion); + void fastcall complete(struct completion *x) { unsigned long flags; - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|