posix-timers: lock_timer: make it readable
Cleanup. Imho makes the code much more understandable. At least this patch lessens both the source and compiled code. Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru> Cc: mingo@elte.hu Cc: Roland McGrath <roland@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
This commit is contained in:
Родитель
5a51b713cc
Коммит
31d9284569
|
@ -556,7 +556,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;
|
||||
/*
|
||||
|
@ -564,23 +564,20 @@ static struct k_itimer * lock_timer(timer_t timer_id, unsigned long *flags)
|
|||
* flags part over to the timer lock. Must not let interrupts in
|
||||
* while we are moving the lock.
|
||||
*/
|
||||
|
||||
spin_lock_irqsave(&idr_lock, *flags);
|
||||
timr = idr_find(&posix_timers_id, (int) timer_id);
|
||||
timr = idr_find(&posix_timers_id, (int)timer_id);
|
||||
if (timr) {
|
||||
spin_lock(&timr->it_lock);
|
||||
|
||||
if (!timr->it_process ||
|
||||
!same_thread_group(timr->it_process, current)) {
|
||||
spin_unlock(&timr->it_lock);
|
||||
spin_unlock_irqrestore(&idr_lock, *flags);
|
||||
timr = NULL;
|
||||
} else
|
||||
if (timr->it_process &&
|
||||
same_thread_group(timr->it_process, current)) {
|
||||
spin_unlock(&idr_lock);
|
||||
} else
|
||||
spin_unlock_irqrestore(&idr_lock, *flags);
|
||||
return timr;
|
||||
}
|
||||
spin_unlock(&timr->it_lock);
|
||||
}
|
||||
spin_unlock_irqrestore(&idr_lock, *flags);
|
||||
|
||||
return timr;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
Загрузка…
Ссылка в новой задаче