mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
net: remove compat_sock_common_{get,set}sockopt
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 <hch@lst.de> Acked-by: Matthieu Baerts <matthieu.baerts@tessares.net> Acked-by: Stefan Schmidt <stefan@datenfreihafen.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
4d295e5461
commit
8c918ffbba
16 changed files with 12 additions and 100 deletions
|
@ -3199,24 +3199,15 @@ int sock_common_getsockopt(struct socket *sock, int level, int optname,
|
|||
{
|
||||
struct sock *sk = sock->sk;
|
||||
|
||||
#ifdef CONFIG_COMPAT
|
||||
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(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)
|
||||
return sk->sk_prot->compat_getsockopt(sk, level, optname,
|
||||
optval, optlen);
|
||||
return sk->sk_prot->getsockopt(sk, level, optname, optval, optlen);
|
||||
}
|
||||
EXPORT_SYMBOL(compat_sock_common_getsockopt);
|
||||
#endif
|
||||
|
||||
int sock_common_recvmsg(struct socket *sock, struct msghdr *msg, size_t size,
|
||||
int flags)
|
||||
{
|
||||
|
@ -3240,24 +3231,15 @@ int sock_common_setsockopt(struct socket *sock, int level, int optname,
|
|||
{
|
||||
struct sock *sk = sock->sk;
|
||||
|
||||
#ifdef CONFIG_COMPAT
|
||||
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(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)
|
||||
return sk->sk_prot->compat_setsockopt(sk, level, optname,
|
||||
optval, optlen);
|
||||
return sk->sk_prot->setsockopt(sk, level, optname, optval, optlen);
|
||||
}
|
||||
EXPORT_SYMBOL(compat_sock_common_setsockopt);
|
||||
#endif
|
||||
|
||||
void sk_common_release(struct sock *sk)
|
||||
{
|
||||
if (sk->sk_prot->destroy)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue