Skip to content

Commit

Permalink
sched: Turn lock_task_sighand() into a static inline
Browse files Browse the repository at this point in the history
It appears that sparse tool understands static inline functions
for context balance checking, so let's turn the macros into an
inline func.

This makes the code a little bit more robust.

Suggested-by: Oleg Nesterov <oleg@redhat.com>
Signed-off-by: Anton Vorontsov <anton.vorontsov@linaro.org>
Cc: KOSAKI Motohiro <kosaki.motohiro@gmail.com>
Cc: Greg KH <gregkh@linuxfoundation.org>
Cc: Arve <arve@android.com>
Cc: San Mehat <san@google.com>
Cc: Colin Cross <ccross@android.com>
Cc: Eric W. Biederman <ebiederm@xmission.com>
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: kernel-team@android.com
Cc: linaro-kernel@lists.linaro.org
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/20120209164519.GA10266@oksana.dev.rtsoft.ru
Signed-off-by: Ingo Molnar <mingo@elte.hu>
  • Loading branch information
Anton Vorontsov authored and Ingo Molnar committed Feb 11, 2012
1 parent ed387b7 commit 9388dc3
Showing 1 changed file with 9 additions and 6 deletions.
15 changes: 9 additions & 6 deletions include/linux/sched.h
Original file line number Diff line number Diff line change
Expand Up @@ -2393,12 +2393,15 @@ static inline void task_unlock(struct task_struct *p)
extern struct sighand_struct *__lock_task_sighand(struct task_struct *tsk,
unsigned long *flags);

#define lock_task_sighand(tsk, flags) \
({ struct sighand_struct *__ss; \
__cond_lock(&(tsk)->sighand->siglock, \
(__ss = __lock_task_sighand(tsk, flags))); \
__ss; \
}) \
static inline struct sighand_struct *lock_task_sighand(struct task_struct *tsk,
unsigned long *flags)
{
struct sighand_struct *ret;

ret = __lock_task_sighand(tsk, flags);
(void)__cond_lock(&tsk->sighand->siglock, ret);
return ret;
}

static inline void unlock_task_sighand(struct task_struct *tsk,
unsigned long *flags)
Expand Down

0 comments on commit 9388dc3

Please sign in to comment.