From fde0763a1c2ac03168b66e81091c69662ed5b570 Mon Sep 17 00:00:00 2001 From: Namhyung Kim Date: Wed, 20 Oct 2010 15:57:34 -0700 Subject: [PATCH] --- yaml --- r: 224023 b: refs/heads/master c: 20f33a03f0cf87e51165f7084f697acfb68e865b h: refs/heads/master i: 224021: 8ded0eb23d23039666a8dc88f30ab382f3cdaed4 224019: 1a86ef9bf0d118b00216d22f32bab878550a37a0 224015: 76bb34ca15712a576252038b85ef99a8f49307a8 v: v3 --- [refs] | 2 +- trunk/kernel/posix-timers.c | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index eda3a08483ad..9b60772c369f 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: dd6414b50fa2b1cd247a8aa8f8bd42414b7453e1 +refs/heads/master: 20f33a03f0cf87e51165f7084f697acfb68e865b diff --git a/trunk/kernel/posix-timers.c b/trunk/kernel/posix-timers.c index 9ca4973f736d..93bd2eb2bc53 100644 --- a/trunk/kernel/posix-timers.c +++ b/trunk/kernel/posix-timers.c @@ -145,7 +145,13 @@ static int common_timer_del(struct k_itimer *timer); static enum hrtimer_restart posix_timer_fn(struct hrtimer *data); -static struct k_itimer *lock_timer(timer_t timer_id, unsigned long *flags); +static struct k_itimer *__lock_timer(timer_t timer_id, unsigned long *flags); + +#define lock_timer(tid, flags) \ +({ struct k_itimer *__timr; \ + __cond_lock(&__timr->it_lock, __timr = __lock_timer(tid, flags)); \ + __timr; \ +}) static inline void unlock_timer(struct k_itimer *timr, unsigned long flags) { @@ -619,7 +625,7 @@ SYSCALL_DEFINE3(timer_create, const clockid_t, which_clock, * the find to the timer lock. To avoid a dead lock, the timer id MUST * be release with out holding the timer lock. */ -static struct k_itimer *lock_timer(timer_t timer_id, unsigned long *flags) +static struct k_itimer *__lock_timer(timer_t timer_id, unsigned long *flags) { struct k_itimer *timr; /*