|
@@ -2236,9 +2236,16 @@ static inline void task_unlock(struct task_struct *p)
|
|
spin_unlock(&p->alloc_lock);
|
|
spin_unlock(&p->alloc_lock);
|
|
}
|
|
}
|
|
|
|
|
|
-extern struct sighand_struct *lock_task_sighand(struct task_struct *tsk,
|
|
|
|
|
|
+extern struct sighand_struct *__lock_task_sighand(struct task_struct *tsk,
|
|
unsigned long *flags);
|
|
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 void unlock_task_sighand(struct task_struct *tsk,
|
|
static inline void unlock_task_sighand(struct task_struct *tsk,
|
|
unsigned long *flags)
|
|
unsigned long *flags)
|
|
{
|
|
{
|