Message ID | 20180402180127.4047-1-xiyou.wangcong@gmail.com |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
Series | [net] af_unix: remove redundant lockdep class | expand |
On Mon, 2018-04-02 at 11:01 -0700, Cong Wang wrote: > After commit 581319c58600 ("net/socket: use per af lockdep classes for sk queues") > sock queue locks now have per-af lockdep classes, including unix socket. > It is no longer necessary to workaround it. > > I noticed this while looking at a syzbot deadlock report, this patch > itself doesn't fix it (this is why I don't add Reported-by). > > Fixes: 581319c58600 ("net/socket: use per af lockdep classes for sk queues") > Cc: Paolo Abeni <pabeni@redhat.com> > Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com> > --- > net/unix/af_unix.c | 10 ---------- > 1 file changed, 10 deletions(-) > > diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c > index 2d465bdeccbc..45971e173924 100644 > --- a/net/unix/af_unix.c > +++ b/net/unix/af_unix.c > @@ -745,14 +745,6 @@ static struct proto unix_proto = { > .obj_size = sizeof(struct unix_sock), > }; > > -/* > - * AF_UNIX sockets do not interact with hardware, hence they > - * dont trigger interrupts - so it's safe for them to have > - * bh-unsafe locking for their sk_receive_queue.lock. Split off > - * this special lock-class by reinitializing the spinlock key: > - */ > -static struct lock_class_key af_unix_sk_receive_queue_lock_key; > - > static struct sock *unix_create1(struct net *net, struct socket *sock, int kern) > { > struct sock *sk = NULL; > @@ -767,8 +759,6 @@ static struct sock *unix_create1(struct net *net, struct socket *sock, int kern) > goto out; > > sock_init_data(sock, sk); > - lockdep_set_class(&sk->sk_receive_queue.lock, > - &af_unix_sk_receive_queue_lock_key); > > sk->sk_allocation = GFP_KERNEL_ACCOUNT; > sk->sk_write_space = unix_write_space; LGTM Acked-by: Paolo Abeni <pabeni@redhat.com>
From: Cong Wang <xiyou.wangcong@gmail.com> Date: Mon, 2 Apr 2018 11:01:27 -0700 > After commit 581319c58600 ("net/socket: use per af lockdep classes for sk queues") > sock queue locks now have per-af lockdep classes, including unix socket. > It is no longer necessary to workaround it. > > I noticed this while looking at a syzbot deadlock report, this patch > itself doesn't fix it (this is why I don't add Reported-by). > > Fixes: 581319c58600 ("net/socket: use per af lockdep classes for sk queues") > Cc: Paolo Abeni <pabeni@redhat.com> > Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com> Applied, thanks Cong.
diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c index 2d465bdeccbc..45971e173924 100644 --- a/net/unix/af_unix.c +++ b/net/unix/af_unix.c @@ -745,14 +745,6 @@ static struct proto unix_proto = { .obj_size = sizeof(struct unix_sock), }; -/* - * AF_UNIX sockets do not interact with hardware, hence they - * dont trigger interrupts - so it's safe for them to have - * bh-unsafe locking for their sk_receive_queue.lock. Split off - * this special lock-class by reinitializing the spinlock key: - */ -static struct lock_class_key af_unix_sk_receive_queue_lock_key; - static struct sock *unix_create1(struct net *net, struct socket *sock, int kern) { struct sock *sk = NULL; @@ -767,8 +759,6 @@ static struct sock *unix_create1(struct net *net, struct socket *sock, int kern) goto out; sock_init_data(sock, sk); - lockdep_set_class(&sk->sk_receive_queue.lock, - &af_unix_sk_receive_queue_lock_key); sk->sk_allocation = GFP_KERNEL_ACCOUNT; sk->sk_write_space = unix_write_space;
After commit 581319c58600 ("net/socket: use per af lockdep classes for sk queues") sock queue locks now have per-af lockdep classes, including unix socket. It is no longer necessary to workaround it. I noticed this while looking at a syzbot deadlock report, this patch itself doesn't fix it (this is why I don't add Reported-by). Fixes: 581319c58600 ("net/socket: use per af lockdep classes for sk queues") Cc: Paolo Abeni <pabeni@redhat.com> Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com> --- net/unix/af_unix.c | 10 ---------- 1 file changed, 10 deletions(-)