Messages in this thread | | | Date | Fri, 19 Apr 2024 20:04:53 -0700 | From | Jakub Kicinski <> | Subject | Re: [PATCH net,v3] net: hams: Fix deadlock caused by unsafe-irq lock in sp_get() |
| |
On Sat, 20 Apr 2024 04:14:38 +0900 Jeongjun Park wrote: > read_lock() present in sp_get() is interrupt-vulnerable, so the function needs to be modified.
I was going to make the same comments as on the other submission but then I realized this doesn't even build.
Please don't spam the list with completely untested code. You can submit patches to syzbot for testing without CCing the list or developers.
> Reported-by: syzbot+8e03da5d64bc85098811@syzkaller.appspotmail.com > Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2") > Signed-off-by: Jeongjun Park <aha310510@gmail.com> > --- > drivers/net/hamradio/6pack.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/hamradio/6pack.c b/drivers/net/hamradio/6pack.c > index 6ed38a3cdd73..fee583b1e59a 100644 > --- a/drivers/net/hamradio/6pack.c > +++ b/drivers/net/hamradio/6pack.c > @@ -373,11 +373,11 @@ static struct sixpack *sp_get(struct tty_struct *tty) > { > struct sixpack *sp; > > - read_lock(&disc_data_lock); > + read_lock_irq(&disc_data_lock); > sp = tty->disc_data; > if (sp) > refcount_inc(&sp->refcnt); > - read_unlock(&disc_data_lock); > + read_unlock_irq(&disc_data_lock); > > return sp; > }
| |