Re: [syzbot] [bpf?] [trace?] WARNING: locking bug in __lock_task_sighand

From: Alexei Starovoitov
Date: Fri Dec 20 2024 - 12:51:42 EST


On Tue, Dec 17, 2024 at 3:49 PM Alexei Starovoitov
<alexei.starovoitov@xxxxxxxxx> wrote:
>
> On Mon, Dec 2, 2024 at 4:42 AM Puranjay Mohan <puranjay@xxxxxxxxxx> wrote:
> >
> > Alexei Starovoitov <alexei.starovoitov@xxxxxxxxx> writes:
> >
> > > Puranjay, Andrii and All,
> > >
> > > looks like if (irqs_disabled()) is not enough.
> > > Should we change it to preemptible() ?
> > >
> > > It will likely make it async all the time,
> > > but in this it's an ok trade off?
> > >
> >
> > Yes, as BPF programs can run in all kinds of contexts.
> >
> > We should replace 'if (irqs_disabled())' with 'if (!preemptible())'
> >
> > because the definition is:
> >
> > #define preemptible() (preempt_count() == 0 && !irqs_disabled())
> >
> > and we need if ((preempt_count() != 0) || irqs_disabled()), in both
> > these cases we want to make it async.
> >
> > I will try to test the fix as Syzbot has now found a reproducer.
>
> Puranjay,
>
> Any progress on a patch ?

ping.