Re: [PATCH v5 36/36] sched: Enable context analysis for core.c and fair.c
Bart Van Assche <[email protected]> Mon, 12 Jan 2026 14:04:59 -0800
| Newsgroups | org.kernel.vger.linux-sparse,dev.linux.lists.llvm,org.kernel.vger.linux-crypto,org.kernel.vger.linux-doc,org.kernel.vger.linux-kbuild,org.kernel.vger.linux-kernel,org.kernel.vger.linux-security-module,org.kernel.vger.linux-wireless,org.kernel.vger.rcu,org.kvack.linux-mm |
|---|---|
| Message-ID | <[email protected]> |
On 12/19/25 8:40 AM, Marco Elver wrote: > diff --git a/include/linux/sched/signal.h b/include/linux/sched/signal.h > index a63f65aa5bdd..a22248aebcf9 100644 > --- a/include/linux/sched/signal.h > +++ b/include/linux/sched/signal.h > @@ -738,10 +738,12 @@ static inline int thread_group_empty(struct task_struct *p) > (thread_group_leader(p) && !thread_group_empty(p)) > > extern struct sighand_struct *lock_task_sighand(struct task_struct *task, > - unsigned long *flags); > + unsigned long *flags) > + __acquires(&task->sighand->siglock); I think the above annotation is wrong and should be changed into __cond_acquires(nonnull, &task->sighand->siglock). My understanding of the code in kernel/signal.c is that lock_task_sighand() only returns with sighand->siglock acquired if it returns a non-NULL pointer. Bart.