diff options
| -rw-r--r-- | kernel/posix-timers.c | 10 | 
1 files changed, 8 insertions, 2 deletions
diff --git a/kernel/posix-timers.c b/kernel/posix-timers.c index 9ca4973f736..93bd2eb2bc5 100644 --- a/kernel/posix-timers.c +++ b/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 @@ out:   * 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;  	/*  |