Received: by 2002:a25:e74b:0:0:0:0:0 with SMTP id e72csp1840477ybh; Fri, 17 Jul 2020 02:36:07 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy3K7YCFSSaR3m2zn76lfxpZIgxnuGDVEU3ffClcrY3lhNMuTVHj+bsWipsRqbAFuMlIfa3 X-Received: by 2002:a17:906:60d0:: with SMTP id f16mr7502441ejk.17.1594978567350; Fri, 17 Jul 2020 02:36:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1594978567; cv=none; d=google.com; s=arc-20160816; b=QM3DaVw9a7cnoGe5A3OctnxAvYPJHkP0qEeNr4PhtQsi4YZCKJX6sJMFytJD0p6qq6 s91EsinW4Heqf5KufuLf3CKHp5i9D+uyDDP6CvVNREaF6bQIMKNZvGknB6nBqSnty1AQ wZrlf8P6KAycLA3QG7GxCw4gvBz5SjkD3xBbxwDv5WalBGx2l1O8K0Z3vcg7Tp5Yh7ML 7savk8nfzgJ4km4oEySekn9ixSJTGkq0edC4iEeWWf1RgzNGx0F54SBIjwV1MUZYZpha qxGsfa9/I4FsAX0xtDg3FP9vyCZzb/VujmupzsTqpSzCVaMLc0TTjgN6/CkXoKjkvPe8 Vxvw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject; bh=yrwJ8WDaJlVyVz3+03XMD8wjQ2UhUMC1ZW48lByshRE=; b=r69PADygcCnBKzBVPTtm/B2K5pRCZLc9BP+rMZZpZFFwZAW2SjLVikGb/x3v/9LabN CTVMoMO+799aVnqQq1Axj9d+9C4ZKtBYHA6l5vvtCl+7F5nC6NEchsP9egnDGr+YEEYh pYtUm4D9eCGt1FifSFS/gKjPs+q5ZEcuQJO7s6BKxIYMxGF+sXmJi2NC2Opn3Fzj7NG1 c4ihf9cJlZLP0ALLUwKv02b86OFbo60gwr4psBfl+tLDZYMWT+6DDe/Uih8gehRy/e6V hgeXOdNxMet5xT2wQEiTnRA1mhnRFflY2Lc/6APE/cyGtn154fzkJy3ScBCKbiO/9gly DmYA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id z5si4636163ejd.322.2020.07.17.02.35.34; Fri, 17 Jul 2020 02:36:07 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726334AbgGQJfX (ORCPT + 99 others); Fri, 17 Jul 2020 05:35:23 -0400 Received: from proxima.lasnet.de ([78.47.171.185]:53924 "EHLO proxima.lasnet.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725932AbgGQJfX (ORCPT ); Fri, 17 Jul 2020 05:35:23 -0400 X-Greylist: delayed 522 seconds by postgrey-1.27 at vger.kernel.org; Fri, 17 Jul 2020 05:35:19 EDT Received: from localhost.localdomain (p200300e9d737160bc31b0c5d63306033.dip0.t-ipconnect.de [IPv6:2003:e9:d737:160b:c31b:c5d:6330:6033]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: stefan@datenfreihafen.org) by proxima.lasnet.de (Postfix) with ESMTPSA id B77EDC0617; Fri, 17 Jul 2020 11:26:35 +0200 (CEST) Subject: Re: [PATCH 05/22] net: remove compat_sock_common_{get,set}sockopt To: Christoph Hellwig , "David S. Miller" Cc: Alexei Starovoitov , Daniel Borkmann , Chas Williams <3chas3@gmail.com>, Pablo Neira Ayuso , Jozsef Kadlecsik , Florian Westphal , Alexey Kuznetsov , Hideaki YOSHIFUJI , linux-kernel@vger.kernel.org, netdev@vger.kernel.org, bpf@vger.kernel.org, netfilter-devel@vger.kernel.org, linux-sctp@vger.kernel.org, linux-arch@vger.kernel.org, linux-bluetooth@vger.kernel.org, bridge@lists.linux-foundation.org, linux-can@vger.kernel.org, dccp@vger.kernel.org, linux-wpan@vger.kernel.org, mptcp@lists.01.org References: <20200717062331.691152-1-hch@lst.de> <20200717062331.691152-6-hch@lst.de> From: Stefan Schmidt Message-ID: <52d031f9-70c2-89c1-941f-c8187a6a2b68@datenfreihafen.org> Date: Fri, 17 Jul 2020 11:26:34 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.9.0 MIME-Version: 1.0 In-Reply-To: <20200717062331.691152-6-hch@lst.de> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-bluetooth-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-bluetooth@vger.kernel.org Hello. On 17.07.20 08:23, Christoph Hellwig wrote: > Add the compat handling to sock_common_{get,set}sockopt instead, > keyed of in_compat_syscall(). This allow to remove the now unused > ->compat_{get,set}sockopt methods from struct proto_ops. > > Signed-off-by: Christoph Hellwig > --- > include/linux/net.h | 6 ------ > include/net/sock.h | 4 ---- > net/core/sock.c | 30 ++++++------------------------ > net/dccp/ipv4.c | 4 ---- > net/dccp/ipv6.c | 2 -- > net/ieee802154/socket.c | 8 -------- > net/ipv4/af_inet.c | 6 ------ > net/ipv6/af_inet6.c | 4 ---- > net/ipv6/ipv6_sockglue.c | 12 ++---------- > net/ipv6/raw.c | 2 -- > net/l2tp/l2tp_ip.c | 4 ---- > net/l2tp/l2tp_ip6.c | 2 -- > net/mptcp/protocol.c | 6 ------ > net/phonet/socket.c | 8 -------- > net/sctp/ipv6.c | 2 -- > net/sctp/protocol.c | 4 ---- > 16 files changed, 8 insertions(+), 96 deletions(-) > > diff --git a/include/linux/net.h b/include/linux/net.h > index 016a9c5faa3479..858ff1d981540d 100644 > --- a/include/linux/net.h > +++ b/include/linux/net.h > @@ -165,12 +165,6 @@ struct proto_ops { > int optname, char __user *optval, unsigned int optlen); > int (*getsockopt)(struct socket *sock, int level, > int optname, char __user *optval, int __user *optlen); > -#ifdef CONFIG_COMPAT > - int (*compat_setsockopt)(struct socket *sock, int level, > - int optname, char __user *optval, unsigned int optlen); > - int (*compat_getsockopt)(struct socket *sock, int level, > - int optname, char __user *optval, int __user *optlen); > -#endif > void (*show_fdinfo)(struct seq_file *m, struct socket *sock); > int (*sendmsg) (struct socket *sock, struct msghdr *m, > size_t total_len); > diff --git a/include/net/sock.h b/include/net/sock.h > index 4bf8841651486d..1fd7cf5fc7516c 100644 > --- a/include/net/sock.h > +++ b/include/net/sock.h > @@ -1744,10 +1744,6 @@ int sock_common_recvmsg(struct socket *sock, struct msghdr *msg, size_t size, > int flags); > int sock_common_setsockopt(struct socket *sock, int level, int optname, > char __user *optval, unsigned int optlen); > -int compat_sock_common_getsockopt(struct socket *sock, int level, > - int optname, char __user *optval, int __user *optlen); > -int compat_sock_common_setsockopt(struct socket *sock, int level, > - int optname, char __user *optval, unsigned int optlen); > > void sk_common_release(struct sock *sk); > > diff --git a/net/core/sock.c b/net/core/sock.c > index e085df79482520..018404d1762682 100644 > --- a/net/core/sock.c > +++ b/net/core/sock.c > @@ -3199,23 +3199,14 @@ int sock_common_getsockopt(struct socket *sock, int level, int optname, > { > struct sock *sk = sock->sk; > > - return sk->sk_prot->getsockopt(sk, level, optname, optval, optlen); > -} > -EXPORT_SYMBOL(sock_common_getsockopt); > - > #ifdef CONFIG_COMPAT > -int compat_sock_common_getsockopt(struct socket *sock, int level, int optname, > - char __user *optval, int __user *optlen) > -{ > - struct sock *sk = sock->sk; > - > - if (sk->sk_prot->compat_getsockopt != NULL) > + if (in_compat_syscal() && sk->sk_prot->compat_getsockopt) > return sk->sk_prot->compat_getsockopt(sk, level, optname, > optval, optlen); > +#endif > return sk->sk_prot->getsockopt(sk, level, optname, optval, optlen); > } > -EXPORT_SYMBOL(compat_sock_common_getsockopt); > -#endif > +EXPORT_SYMBOL(sock_common_getsockopt); > > int sock_common_recvmsg(struct socket *sock, struct msghdr *msg, size_t size, > int flags) > @@ -3240,23 +3231,14 @@ int sock_common_setsockopt(struct socket *sock, int level, int optname, > { > struct sock *sk = sock->sk; > > - return sk->sk_prot->setsockopt(sk, level, optname, optval, optlen); > -} > -EXPORT_SYMBOL(sock_common_setsockopt); > - > #ifdef CONFIG_COMPAT > -int compat_sock_common_setsockopt(struct socket *sock, int level, int optname, > - char __user *optval, unsigned int optlen) > -{ > - struct sock *sk = sock->sk; > - > - if (sk->sk_prot->compat_setsockopt != NULL) > + if (in_compat_syscall() && sk->sk_prot->compat_setsockopt) > return sk->sk_prot->compat_setsockopt(sk, level, optname, > optval, optlen); > +#endif > return sk->sk_prot->setsockopt(sk, level, optname, optval, optlen); > } > -EXPORT_SYMBOL(compat_sock_common_setsockopt); > -#endif > +EXPORT_SYMBOL(sock_common_setsockopt); > > void sk_common_release(struct sock *sk) > { > diff --git a/net/dccp/ipv4.c b/net/dccp/ipv4.c > index a7e989919c5307..316cc5ac0da72b 100644 > --- a/net/dccp/ipv4.c > +++ b/net/dccp/ipv4.c > @@ -999,10 +999,6 @@ static const struct proto_ops inet_dccp_ops = { > .recvmsg = sock_common_recvmsg, > .mmap = sock_no_mmap, > .sendpage = sock_no_sendpage, > -#ifdef CONFIG_COMPAT > - .compat_setsockopt = compat_sock_common_setsockopt, > - .compat_getsockopt = compat_sock_common_getsockopt, > -#endif > }; > > static struct inet_protosw dccp_v4_protosw = { > diff --git a/net/dccp/ipv6.c b/net/dccp/ipv6.c > index 650187d688519c..b50f85a72cd5fc 100644 > --- a/net/dccp/ipv6.c > +++ b/net/dccp/ipv6.c > @@ -1083,8 +1083,6 @@ static const struct proto_ops inet6_dccp_ops = { > .sendpage = sock_no_sendpage, > #ifdef CONFIG_COMPAT > .compat_ioctl = inet6_compat_ioctl, > - .compat_setsockopt = compat_sock_common_setsockopt, > - .compat_getsockopt = compat_sock_common_getsockopt, > #endif > }; > > diff --git a/net/ieee802154/socket.c b/net/ieee802154/socket.c > index d93d4531aa9bc5..94ae9662133e30 100644 > --- a/net/ieee802154/socket.c > +++ b/net/ieee802154/socket.c > @@ -423,10 +423,6 @@ static const struct proto_ops ieee802154_raw_ops = { > .recvmsg = sock_common_recvmsg, > .mmap = sock_no_mmap, > .sendpage = sock_no_sendpage, > -#ifdef CONFIG_COMPAT > - .compat_setsockopt = compat_sock_common_setsockopt, > - .compat_getsockopt = compat_sock_common_getsockopt, > -#endif > }; > > /* DGRAM Sockets (802.15.4 dataframes) */ > @@ -986,10 +982,6 @@ static const struct proto_ops ieee802154_dgram_ops = { > .recvmsg = sock_common_recvmsg, > .mmap = sock_no_mmap, > .sendpage = sock_no_sendpage, > -#ifdef CONFIG_COMPAT > - .compat_setsockopt = compat_sock_common_setsockopt, > - .compat_getsockopt = compat_sock_common_getsockopt, > -#endif For the ieee802154 part: Acked-by: Stefan Schmidt regards Stefan Schmidt