From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paolo Abeni Subject: Re: [Patch net] af_unix: remove redundant lockdep class Date: Tue, 03 Apr 2018 11:07:01 +0200 Message-ID: <1522746421.2794.0.camel@redhat.com> References: <20180402180127.4047-1-xiyou.wangcong@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit To: Cong Wang , netdev@vger.kernel.org Return-path: Received: from mx3-rdu2.redhat.com ([66.187.233.73]:49084 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753452AbeDCJHJ (ORCPT ); Tue, 3 Apr 2018 05:07:09 -0400 In-Reply-To: <20180402180127.4047-1-xiyou.wangcong@gmail.com> Sender: netdev-owner@vger.kernel.org List-ID: 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 > Signed-off-by: Cong Wang > --- > 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