diff options
author | Oleg Nesterov <oleg@tv-sign.ru> | 2008-06-08 21:20:42 +0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-06-10 11:45:09 +0200 |
commit | 6ad36762d7a88d747f6fed95194b4f7ff5da8df4 (patch) | |
tree | 59cb2e62cbf28be3aed00705f8564eba103fe9c0 /kernel/mutex.c | |
parent | 493d35863dbb692c38c1415fd83d88dfb902ae37 (diff) | |
download | lwn-6ad36762d7a88d747f6fed95194b4f7ff5da8df4.tar.gz lwn-6ad36762d7a88d747f6fed95194b4f7ff5da8df4.zip |
__mutex_lock_common: use signal_pending_state()
Change __mutex_lock_common() to use signal_pending_state() for the sake of
the code re-use.
This adds 7 bytes to kernel/mutex.o, but afaics only because gcc isn't smart
enough.
(btw, uninlining of __mutex_lock_common() shrinks .text from 2722 to 1542,
perhaps it is worth doing).
Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/mutex.c')
-rw-r--r-- | kernel/mutex.c | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/kernel/mutex.c b/kernel/mutex.c index d046a345d365..bcdc9ac8ef60 100644 --- a/kernel/mutex.c +++ b/kernel/mutex.c @@ -165,10 +165,7 @@ __mutex_lock_common(struct mutex *lock, long state, unsigned int subclass, * got a signal? (This code gets eliminated in the * TASK_UNINTERRUPTIBLE case.) */ - if (unlikely((state == TASK_INTERRUPTIBLE && - signal_pending(task)) || - (state == TASK_KILLABLE && - fatal_signal_pending(task)))) { + if (unlikely(signal_pending_state(state, task))) { mutex_remove_waiter(lock, &waiter, task_thread_info(task)); mutex_release(&lock->dep_map, 1, ip); |