net: Make setsockopt() optlen be unsigned.

This provides safety against negative optlen at the type
level instead of depending upon (sometimes non-trivial)
checks against this sprinkled all over the the place, in
each and every implementation.

Based upon work done by Arjan van de Ven and feedback
from Linus Torvalds.

Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
David S. Miller 2009-09-30 16:12:20 -07:00
parent eb1cf0f8f7
commit b7058842c9
67 changed files with 149 additions and 153 deletions

View File

@ -1306,14 +1306,6 @@ static void amb_close (struct atm_vcc * atm_vcc) {
return; return;
} }
/********** Set socket options for a VC **********/
// int amb_getsockopt (struct atm_vcc * atm_vcc, int level, int optname, void * optval, int optlen);
/********** Set socket options for a VC **********/
// int amb_setsockopt (struct atm_vcc * atm_vcc, int level, int optname, void * optval, int optlen);
/********** Send **********/ /********** Send **********/
static int amb_send (struct atm_vcc * atm_vcc, struct sk_buff * skb) { static int amb_send (struct atm_vcc * atm_vcc, struct sk_buff * skb) {

View File

@ -2031,7 +2031,7 @@ static int eni_getsockopt(struct atm_vcc *vcc,int level,int optname,
static int eni_setsockopt(struct atm_vcc *vcc,int level,int optname, static int eni_setsockopt(struct atm_vcc *vcc,int level,int optname,
void __user *optval,int optlen) void __user *optval,unsigned int optlen)
{ {
return -EINVAL; return -EINVAL;
} }

View File

@ -1244,7 +1244,7 @@ static int fs_getsockopt(struct atm_vcc *vcc,int level,int optname,
static int fs_setsockopt(struct atm_vcc *vcc,int level,int optname, static int fs_setsockopt(struct atm_vcc *vcc,int level,int optname,
void __user *optval,int optlen) void __user *optval,unsigned int optlen)
{ {
func_enter (); func_enter ();
func_exit (); func_exit ();

View File

@ -1795,7 +1795,7 @@ fore200e_getsockopt(struct atm_vcc* vcc, int level, int optname, void __user *op
static int static int
fore200e_setsockopt(struct atm_vcc* vcc, int level, int optname, void __user *optval, int optlen) fore200e_setsockopt(struct atm_vcc* vcc, int level, int optname, void __user *optval, unsigned int optlen)
{ {
/* struct fore200e* fore200e = FORE200E_DEV(vcc->dev); */ /* struct fore200e* fore200e = FORE200E_DEV(vcc->dev); */

View File

@ -2590,7 +2590,7 @@ static int hrz_getsockopt (struct atm_vcc * atm_vcc, int level, int optname,
} }
static int hrz_setsockopt (struct atm_vcc * atm_vcc, int level, int optname, static int hrz_setsockopt (struct atm_vcc * atm_vcc, int level, int optname,
void *optval, int optlen) { void *optval, unsigned int optlen) {
hrz_dev * dev = HRZ_DEV(atm_vcc->dev); hrz_dev * dev = HRZ_DEV(atm_vcc->dev);
PRINTD (DBG_FLOW|DBG_VCC, "hrz_setsockopt"); PRINTD (DBG_FLOW|DBG_VCC, "hrz_setsockopt");
switch (level) { switch (level) {

View File

@ -2862,7 +2862,7 @@ static int ia_getsockopt(struct atm_vcc *vcc, int level, int optname,
} }
static int ia_setsockopt(struct atm_vcc *vcc, int level, int optname, static int ia_setsockopt(struct atm_vcc *vcc, int level, int optname,
void __user *optval, int optlen) void __user *optval, unsigned int optlen)
{ {
IF_EVENT(printk(">ia_setsockopt\n");) IF_EVENT(printk(">ia_setsockopt\n");)
return -EINVAL; return -EINVAL;

View File

@ -1517,7 +1517,7 @@ static int zatm_getsockopt(struct atm_vcc *vcc,int level,int optname,
static int zatm_setsockopt(struct atm_vcc *vcc,int level,int optname, static int zatm_setsockopt(struct atm_vcc *vcc,int level,int optname,
void __user *optval,int optlen) void __user *optval,unsigned int optlen)
{ {
return -EINVAL; return -EINVAL;
} }

View File

@ -415,7 +415,7 @@ data_sock_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
} }
static int data_sock_setsockopt(struct socket *sock, int level, int optname, static int data_sock_setsockopt(struct socket *sock, int level, int optname,
char __user *optval, int len) char __user *optval, unsigned int len)
{ {
struct sock *sk = sock->sk; struct sock *sk = sock->sk;
int err = 0, opt = 0; int err = 0, opt = 0;

View File

@ -2179,7 +2179,7 @@ static int pppol2tp_session_setsockopt(struct sock *sk,
* session or the special tunnel type. * session or the special tunnel type.
*/ */
static int pppol2tp_setsockopt(struct socket *sock, int level, int optname, static int pppol2tp_setsockopt(struct socket *sock, int level, int optname,
char __user *optval, int optlen) char __user *optval, unsigned int optlen)
{ {
struct sock *sk = sock->sk; struct sock *sk = sock->sk;
struct pppol2tp_session *session = sk->sk_user_data; struct pppol2tp_session *session = sk->sk_user_data;

View File

@ -397,7 +397,7 @@ struct atmdev_ops { /* only send is required */
int (*getsockopt)(struct atm_vcc *vcc,int level,int optname, int (*getsockopt)(struct atm_vcc *vcc,int level,int optname,
void __user *optval,int optlen); void __user *optval,int optlen);
int (*setsockopt)(struct atm_vcc *vcc,int level,int optname, int (*setsockopt)(struct atm_vcc *vcc,int level,int optname,
void __user *optval,int optlen); void __user *optval,unsigned int optlen);
int (*send)(struct atm_vcc *vcc,struct sk_buff *skb); int (*send)(struct atm_vcc *vcc,struct sk_buff *skb);
int (*send_oam)(struct atm_vcc *vcc,void *cell,int flags); int (*send_oam)(struct atm_vcc *vcc,void *cell,int flags);
void (*phy_put)(struct atm_dev *dev,unsigned char value, void (*phy_put)(struct atm_dev *dev,unsigned char value,

View File

@ -145,14 +145,14 @@ static inline int ip_mroute_opt(int opt)
#endif #endif
#ifdef CONFIG_IP_MROUTE #ifdef CONFIG_IP_MROUTE
extern int ip_mroute_setsockopt(struct sock *, int, char __user *, int); extern int ip_mroute_setsockopt(struct sock *, int, char __user *, unsigned int);
extern int ip_mroute_getsockopt(struct sock *, int, char __user *, int __user *); extern int ip_mroute_getsockopt(struct sock *, int, char __user *, int __user *);
extern int ipmr_ioctl(struct sock *sk, int cmd, void __user *arg); extern int ipmr_ioctl(struct sock *sk, int cmd, void __user *arg);
extern int ip_mr_init(void); extern int ip_mr_init(void);
#else #else
static inline static inline
int ip_mroute_setsockopt(struct sock *sock, int ip_mroute_setsockopt(struct sock *sock,
int optname, char __user *optval, int optlen) int optname, char __user *optval, unsigned int optlen)
{ {
return -ENOPROTOOPT; return -ENOPROTOOPT;
} }

View File

@ -134,7 +134,7 @@ static inline int ip6_mroute_opt(int opt)
struct sock; struct sock;
#ifdef CONFIG_IPV6_MROUTE #ifdef CONFIG_IPV6_MROUTE
extern int ip6_mroute_setsockopt(struct sock *, int, char __user *, int); extern int ip6_mroute_setsockopt(struct sock *, int, char __user *, unsigned int);
extern int ip6_mroute_getsockopt(struct sock *, int, char __user *, int __user *); extern int ip6_mroute_getsockopt(struct sock *, int, char __user *, int __user *);
extern int ip6_mr_input(struct sk_buff *skb); extern int ip6_mr_input(struct sk_buff *skb);
extern int ip6mr_ioctl(struct sock *sk, int cmd, void __user *arg); extern int ip6mr_ioctl(struct sock *sk, int cmd, void __user *arg);
@ -143,7 +143,7 @@ extern void ip6_mr_cleanup(void);
#else #else
static inline static inline
int ip6_mroute_setsockopt(struct sock *sock, int ip6_mroute_setsockopt(struct sock *sock,
int optname, char __user *optval, int optlen) int optname, char __user *optval, unsigned int optlen)
{ {
return -ENOPROTOOPT; return -ENOPROTOOPT;
} }

View File

@ -178,11 +178,11 @@ struct proto_ops {
int (*listen) (struct socket *sock, int len); int (*listen) (struct socket *sock, int len);
int (*shutdown) (struct socket *sock, int flags); int (*shutdown) (struct socket *sock, int flags);
int (*setsockopt)(struct socket *sock, int level, int (*setsockopt)(struct socket *sock, int level,
int optname, char __user *optval, int optlen); int optname, char __user *optval, unsigned int optlen);
int (*getsockopt)(struct socket *sock, int level, int (*getsockopt)(struct socket *sock, int level,
int optname, char __user *optval, int __user *optlen); int optname, char __user *optval, int __user *optlen);
int (*compat_setsockopt)(struct socket *sock, int level, int (*compat_setsockopt)(struct socket *sock, int level,
int optname, char __user *optval, int optlen); int optname, char __user *optval, unsigned int optlen);
int (*compat_getsockopt)(struct socket *sock, int level, int (*compat_getsockopt)(struct socket *sock, int level,
int optname, char __user *optval, int __user *optlen); int optname, char __user *optval, int __user *optlen);
int (*sendmsg) (struct kiocb *iocb, struct socket *sock, int (*sendmsg) (struct kiocb *iocb, struct socket *sock,
@ -256,7 +256,7 @@ extern int kernel_getpeername(struct socket *sock, struct sockaddr *addr,
extern int kernel_getsockopt(struct socket *sock, int level, int optname, extern int kernel_getsockopt(struct socket *sock, int level, int optname,
char *optval, int *optlen); char *optval, int *optlen);
extern int kernel_setsockopt(struct socket *sock, int level, int optname, extern int kernel_setsockopt(struct socket *sock, int level, int optname,
char *optval, int optlen); char *optval, unsigned int optlen);
extern int kernel_sendpage(struct socket *sock, struct page *page, int offset, extern int kernel_sendpage(struct socket *sock, struct page *page, int offset,
size_t size, int flags); size_t size, int flags);
extern int kernel_sock_ioctl(struct socket *sock, int cmd, unsigned long arg); extern int kernel_sock_ioctl(struct socket *sock, int cmd, unsigned long arg);
@ -313,7 +313,7 @@ SOCKCALL_WRAP(name, compat_ioctl, (struct socket *sock, unsigned int cmd, \
SOCKCALL_WRAP(name, listen, (struct socket *sock, int len), (sock, len)) \ SOCKCALL_WRAP(name, listen, (struct socket *sock, int len), (sock, len)) \
SOCKCALL_WRAP(name, shutdown, (struct socket *sock, int flags), (sock, flags)) \ SOCKCALL_WRAP(name, shutdown, (struct socket *sock, int flags), (sock, flags)) \
SOCKCALL_WRAP(name, setsockopt, (struct socket *sock, int level, int optname, \ SOCKCALL_WRAP(name, setsockopt, (struct socket *sock, int level, int optname, \
char __user *optval, int optlen), (sock, level, optname, optval, optlen)) \ char __user *optval, unsigned int optlen), (sock, level, optname, optval, optlen)) \
SOCKCALL_WRAP(name, getsockopt, (struct socket *sock, int level, int optname, \ SOCKCALL_WRAP(name, getsockopt, (struct socket *sock, int level, int optname, \
char __user *optval, int __user *optlen), (sock, level, optname, optval, optlen)) \ char __user *optval, int __user *optlen), (sock, level, optname, optval, optlen)) \
SOCKCALL_WRAP(name, sendmsg, (struct kiocb *iocb, struct socket *sock, struct msghdr *m, size_t len), \ SOCKCALL_WRAP(name, sendmsg, (struct kiocb *iocb, struct socket *sock, struct msghdr *m, size_t len), \

View File

@ -221,12 +221,12 @@ __ret;})
/* Call setsockopt() */ /* Call setsockopt() */
int nf_setsockopt(struct sock *sk, u_int8_t pf, int optval, char __user *opt, int nf_setsockopt(struct sock *sk, u_int8_t pf, int optval, char __user *opt,
int len); unsigned int len);
int nf_getsockopt(struct sock *sk, u_int8_t pf, int optval, char __user *opt, int nf_getsockopt(struct sock *sk, u_int8_t pf, int optval, char __user *opt,
int *len); int *len);
int compat_nf_setsockopt(struct sock *sk, u_int8_t pf, int optval, int compat_nf_setsockopt(struct sock *sk, u_int8_t pf, int optval,
char __user *opt, int len); char __user *opt, unsigned int len);
int compat_nf_getsockopt(struct sock *sk, u_int8_t pf, int optval, int compat_nf_getsockopt(struct sock *sk, u_int8_t pf, int optval,
char __user *opt, int *len); char __user *opt, int *len);

View File

@ -40,8 +40,8 @@ extern int put_cmsg_compat(struct msghdr*, int, int, int, void *);
extern int cmsghdr_from_user_compat_to_kern(struct msghdr *, struct sock *, unsigned char *, int); extern int cmsghdr_from_user_compat_to_kern(struct msghdr *, struct sock *, unsigned char *, int);
extern int compat_mc_setsockopt(struct sock *, int, int, char __user *, int, extern int compat_mc_setsockopt(struct sock *, int, int, char __user *, unsigned int,
int (*)(struct sock *, int, int, char __user *, int)); int (*)(struct sock *, int, int, char __user *, unsigned int));
extern int compat_mc_getsockopt(struct sock *, int, int, char __user *, extern int compat_mc_getsockopt(struct sock *, int, int, char __user *,
int __user *, int (*)(struct sock *, int, int, char __user *, int __user *, int (*)(struct sock *, int, int, char __user *,
int __user *)); int __user *));

View File

@ -48,13 +48,13 @@ struct inet_connection_sock_af_ops {
u16 net_header_len; u16 net_header_len;
u16 sockaddr_len; u16 sockaddr_len;
int (*setsockopt)(struct sock *sk, int level, int optname, int (*setsockopt)(struct sock *sk, int level, int optname,
char __user *optval, int optlen); char __user *optval, unsigned int optlen);
int (*getsockopt)(struct sock *sk, int level, int optname, int (*getsockopt)(struct sock *sk, int level, int optname,
char __user *optval, int __user *optlen); char __user *optval, int __user *optlen);
#ifdef CONFIG_COMPAT #ifdef CONFIG_COMPAT
int (*compat_setsockopt)(struct sock *sk, int (*compat_setsockopt)(struct sock *sk,
int level, int optname, int level, int optname,
char __user *optval, int optlen); char __user *optval, unsigned int optlen);
int (*compat_getsockopt)(struct sock *sk, int (*compat_getsockopt)(struct sock *sk,
int level, int optname, int level, int optname,
char __user *optval, int __user *optlen); char __user *optval, int __user *optlen);
@ -332,5 +332,5 @@ extern void inet_csk_addr2sockaddr(struct sock *sk, struct sockaddr *uaddr);
extern int inet_csk_compat_getsockopt(struct sock *sk, int level, int optname, extern int inet_csk_compat_getsockopt(struct sock *sk, int level, int optname,
char __user *optval, int __user *optlen); char __user *optval, int __user *optlen);
extern int inet_csk_compat_setsockopt(struct sock *sk, int level, int optname, extern int inet_csk_compat_setsockopt(struct sock *sk, int level, int optname,
char __user *optval, int optlen); char __user *optval, unsigned int optlen);
#endif /* _INET_CONNECTION_SOCK_H */ #endif /* _INET_CONNECTION_SOCK_H */

View File

@ -381,10 +381,10 @@ extern int ip_options_rcv_srr(struct sk_buff *skb);
extern void ip_cmsg_recv(struct msghdr *msg, struct sk_buff *skb); extern void ip_cmsg_recv(struct msghdr *msg, struct sk_buff *skb);
extern int ip_cmsg_send(struct net *net, extern int ip_cmsg_send(struct net *net,
struct msghdr *msg, struct ipcm_cookie *ipc); struct msghdr *msg, struct ipcm_cookie *ipc);
extern int ip_setsockopt(struct sock *sk, int level, int optname, char __user *optval, int optlen); extern int ip_setsockopt(struct sock *sk, int level, int optname, char __user *optval, unsigned int optlen);
extern int ip_getsockopt(struct sock *sk, int level, int optname, char __user *optval, int __user *optlen); extern int ip_getsockopt(struct sock *sk, int level, int optname, char __user *optval, int __user *optlen);
extern int compat_ip_setsockopt(struct sock *sk, int level, extern int compat_ip_setsockopt(struct sock *sk, int level,
int optname, char __user *optval, int optlen); int optname, char __user *optval, unsigned int optlen);
extern int compat_ip_getsockopt(struct sock *sk, int level, extern int compat_ip_getsockopt(struct sock *sk, int level,
int optname, char __user *optval, int __user *optlen); int optname, char __user *optval, int __user *optlen);
extern int ip_ra_control(struct sock *sk, unsigned char on, void (*destructor)(struct sock *)); extern int ip_ra_control(struct sock *sk, unsigned char on, void (*destructor)(struct sock *));

View File

@ -550,7 +550,7 @@ extern int ipv6_find_tlv(struct sk_buff *skb, int offset, int type);
extern int ipv6_setsockopt(struct sock *sk, int level, extern int ipv6_setsockopt(struct sock *sk, int level,
int optname, int optname,
char __user *optval, char __user *optval,
int optlen); unsigned int optlen);
extern int ipv6_getsockopt(struct sock *sk, int level, extern int ipv6_getsockopt(struct sock *sk, int level,
int optname, int optname,
char __user *optval, char __user *optval,
@ -559,7 +559,7 @@ extern int compat_ipv6_setsockopt(struct sock *sk,
int level, int level,
int optname, int optname,
char __user *optval, char __user *optval,
int optlen); unsigned int optlen);
extern int compat_ipv6_getsockopt(struct sock *sk, extern int compat_ipv6_getsockopt(struct sock *sk,
int level, int level,
int optname, int optname,

View File

@ -544,7 +544,7 @@ struct sctp_af {
int level, int level,
int optname, int optname,
char __user *optval, char __user *optval,
int optlen); unsigned int optlen);
int (*getsockopt) (struct sock *sk, int (*getsockopt) (struct sock *sk,
int level, int level,
int optname, int optname,
@ -554,7 +554,7 @@ struct sctp_af {
int level, int level,
int optname, int optname,
char __user *optval, char __user *optval,
int optlen); unsigned int optlen);
int (*compat_getsockopt) (struct sock *sk, int (*compat_getsockopt) (struct sock *sk,
int level, int level,
int optname, int optname,

View File

@ -624,7 +624,7 @@ struct proto {
void (*shutdown)(struct sock *sk, int how); void (*shutdown)(struct sock *sk, int how);
int (*setsockopt)(struct sock *sk, int level, int (*setsockopt)(struct sock *sk, int level,
int optname, char __user *optval, int optname, char __user *optval,
int optlen); unsigned int optlen);
int (*getsockopt)(struct sock *sk, int level, int (*getsockopt)(struct sock *sk, int level,
int optname, char __user *optval, int optname, char __user *optval,
int __user *option); int __user *option);
@ -632,7 +632,7 @@ struct proto {
int (*compat_setsockopt)(struct sock *sk, int (*compat_setsockopt)(struct sock *sk,
int level, int level,
int optname, char __user *optval, int optname, char __user *optval,
int optlen); unsigned int optlen);
int (*compat_getsockopt)(struct sock *sk, int (*compat_getsockopt)(struct sock *sk,
int level, int level,
int optname, char __user *optval, int optname, char __user *optval,
@ -951,7 +951,7 @@ extern void sock_rfree(struct sk_buff *skb);
extern int sock_setsockopt(struct socket *sock, int level, extern int sock_setsockopt(struct socket *sock, int level,
int op, char __user *optval, int op, char __user *optval,
int optlen); unsigned int optlen);
extern int sock_getsockopt(struct socket *sock, int level, extern int sock_getsockopt(struct socket *sock, int level,
int op, char __user *optval, int op, char __user *optval,
@ -993,7 +993,7 @@ extern int sock_no_shutdown(struct socket *, int);
extern int sock_no_getsockopt(struct socket *, int , int, extern int sock_no_getsockopt(struct socket *, int , int,
char __user *, int __user *); char __user *, int __user *);
extern int sock_no_setsockopt(struct socket *, int, int, extern int sock_no_setsockopt(struct socket *, int, int,
char __user *, int); char __user *, unsigned int);
extern int sock_no_sendmsg(struct kiocb *, struct socket *, extern int sock_no_sendmsg(struct kiocb *, struct socket *,
struct msghdr *, size_t); struct msghdr *, size_t);
extern int sock_no_recvmsg(struct kiocb *, struct socket *, extern int sock_no_recvmsg(struct kiocb *, struct socket *,
@ -1015,11 +1015,11 @@ extern int sock_common_getsockopt(struct socket *sock, int level, int optname,
extern int sock_common_recvmsg(struct kiocb *iocb, struct socket *sock, extern int sock_common_recvmsg(struct kiocb *iocb, struct socket *sock,
struct msghdr *msg, size_t size, int flags); struct msghdr *msg, size_t size, int flags);
extern int sock_common_setsockopt(struct socket *sock, int level, int optname, extern int sock_common_setsockopt(struct socket *sock, int level, int optname,
char __user *optval, int optlen); char __user *optval, unsigned int optlen);
extern int compat_sock_common_getsockopt(struct socket *sock, int level, extern int compat_sock_common_getsockopt(struct socket *sock, int level,
int optname, char __user *optval, int __user *optlen); int optname, char __user *optval, int __user *optlen);
extern int compat_sock_common_setsockopt(struct socket *sock, int level, extern int compat_sock_common_setsockopt(struct socket *sock, int level,
int optname, char __user *optval, int optlen); int optname, char __user *optval, unsigned int optlen);
extern void sk_common_release(struct sock *sk); extern void sk_common_release(struct sock *sk);

View File

@ -394,13 +394,13 @@ extern int tcp_getsockopt(struct sock *sk, int level,
int __user *optlen); int __user *optlen);
extern int tcp_setsockopt(struct sock *sk, int level, extern int tcp_setsockopt(struct sock *sk, int level,
int optname, char __user *optval, int optname, char __user *optval,
int optlen); unsigned int optlen);
extern int compat_tcp_getsockopt(struct sock *sk, extern int compat_tcp_getsockopt(struct sock *sk,
int level, int optname, int level, int optname,
char __user *optval, int __user *optlen); char __user *optval, int __user *optlen);
extern int compat_tcp_setsockopt(struct sock *sk, extern int compat_tcp_setsockopt(struct sock *sk,
int level, int optname, int level, int optname,
char __user *optval, int optlen); char __user *optval, unsigned int optlen);
extern void tcp_set_keepalive(struct sock *sk, int val); extern void tcp_set_keepalive(struct sock *sk, int val);
extern int tcp_recvmsg(struct kiocb *iocb, struct sock *sk, extern int tcp_recvmsg(struct kiocb *iocb, struct sock *sk,
struct msghdr *msg, struct msghdr *msg,

View File

@ -144,7 +144,7 @@ extern unsigned int udp_poll(struct file *file, struct socket *sock,
extern int udp_lib_getsockopt(struct sock *sk, int level, int optname, extern int udp_lib_getsockopt(struct sock *sk, int level, int optname,
char __user *optval, int __user *optlen); char __user *optval, int __user *optlen);
extern int udp_lib_setsockopt(struct sock *sk, int level, int optname, extern int udp_lib_setsockopt(struct sock *sk, int level, int optname,
char __user *optval, int optlen, char __user *optval, unsigned int optlen,
int (*push_pending_frames)(struct sock *)); int (*push_pending_frames)(struct sock *));
extern struct sock *udp4_lib_lookup(struct net *net, __be32 saddr, __be16 sport, extern struct sock *udp4_lib_lookup(struct net *net, __be32 saddr, __be16 sport,

View File

@ -679,7 +679,7 @@ static int check_qos(const struct atm_qos *qos)
} }
int vcc_setsockopt(struct socket *sock, int level, int optname, int vcc_setsockopt(struct socket *sock, int level, int optname,
char __user *optval, int optlen) char __user *optval, unsigned int optlen)
{ {
struct atm_vcc *vcc; struct atm_vcc *vcc;
unsigned long value; unsigned long value;

View File

@ -21,7 +21,7 @@ unsigned int vcc_poll(struct file *file, struct socket *sock, poll_table *wait);
int vcc_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg); int vcc_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg);
int vcc_compat_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg); int vcc_compat_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg);
int vcc_setsockopt(struct socket *sock, int level, int optname, int vcc_setsockopt(struct socket *sock, int level, int optname,
char __user *optval, int optlen); char __user *optval, unsigned int optlen);
int vcc_getsockopt(struct socket *sock, int level, int optname, int vcc_getsockopt(struct socket *sock, int level, int optname,
char __user *optval, int __user *optlen); char __user *optval, int __user *optlen);

View File

@ -59,7 +59,7 @@ static int pvc_connect(struct socket *sock,struct sockaddr *sockaddr,
} }
static int pvc_setsockopt(struct socket *sock, int level, int optname, static int pvc_setsockopt(struct socket *sock, int level, int optname,
char __user *optval, int optlen) char __user *optval, unsigned int optlen)
{ {
struct sock *sk = sock->sk; struct sock *sk = sock->sk;
int error; int error;

View File

@ -446,7 +446,7 @@ int svc_change_qos(struct atm_vcc *vcc,struct atm_qos *qos)
static int svc_setsockopt(struct socket *sock, int level, int optname, static int svc_setsockopt(struct socket *sock, int level, int optname,
char __user *optval, int optlen) char __user *optval, unsigned int optlen)
{ {
struct sock *sk = sock->sk; struct sock *sk = sock->sk;
struct atm_vcc *vcc = ATM_SD(sock); struct atm_vcc *vcc = ATM_SD(sock);

View File

@ -534,7 +534,7 @@ ax25_cb *ax25_create_cb(void)
*/ */
static int ax25_setsockopt(struct socket *sock, int level, int optname, static int ax25_setsockopt(struct socket *sock, int level, int optname,
char __user *optval, int optlen) char __user *optval, unsigned int optlen)
{ {
struct sock *sk = sock->sk; struct sock *sk = sock->sk;
ax25_cb *ax25; ax25_cb *ax25;

View File

@ -466,7 +466,7 @@ drop:
goto done; goto done;
} }
static int hci_sock_setsockopt(struct socket *sock, int level, int optname, char __user *optval, int len) static int hci_sock_setsockopt(struct socket *sock, int level, int optname, char __user *optval, unsigned int len)
{ {
struct hci_ufilter uf = { .opcode = 0 }; struct hci_ufilter uf = { .opcode = 0 };
struct sock *sk = sock->sk; struct sock *sk = sock->sk;

View File

@ -1698,7 +1698,7 @@ static int l2cap_sock_recvmsg(struct kiocb *iocb, struct socket *sock, struct ms
return bt_sock_recvmsg(iocb, sock, msg, len, flags); return bt_sock_recvmsg(iocb, sock, msg, len, flags);
} }
static int l2cap_sock_setsockopt_old(struct socket *sock, int optname, char __user *optval, int optlen) static int l2cap_sock_setsockopt_old(struct socket *sock, int optname, char __user *optval, unsigned int optlen)
{ {
struct sock *sk = sock->sk; struct sock *sk = sock->sk;
struct l2cap_options opts; struct l2cap_options opts;
@ -1755,7 +1755,7 @@ static int l2cap_sock_setsockopt_old(struct socket *sock, int optname, char __us
return err; return err;
} }
static int l2cap_sock_setsockopt(struct socket *sock, int level, int optname, char __user *optval, int optlen) static int l2cap_sock_setsockopt(struct socket *sock, int level, int optname, char __user *optval, unsigned int optlen)
{ {
struct sock *sk = sock->sk; struct sock *sk = sock->sk;
struct bt_security sec; struct bt_security sec;

View File

@ -730,7 +730,7 @@ out:
return copied ? : err; return copied ? : err;
} }
static int rfcomm_sock_setsockopt_old(struct socket *sock, int optname, char __user *optval, int optlen) static int rfcomm_sock_setsockopt_old(struct socket *sock, int optname, char __user *optval, unsigned int optlen)
{ {
struct sock *sk = sock->sk; struct sock *sk = sock->sk;
int err = 0; int err = 0;
@ -766,7 +766,7 @@ static int rfcomm_sock_setsockopt_old(struct socket *sock, int optname, char __u
return err; return err;
} }
static int rfcomm_sock_setsockopt(struct socket *sock, int level, int optname, char __user *optval, int optlen) static int rfcomm_sock_setsockopt(struct socket *sock, int level, int optname, char __user *optval, unsigned int optlen)
{ {
struct sock *sk = sock->sk; struct sock *sk = sock->sk;
struct bt_security sec; struct bt_security sec;

View File

@ -644,7 +644,7 @@ static int sco_sock_sendmsg(struct kiocb *iocb, struct socket *sock,
return err; return err;
} }
static int sco_sock_setsockopt(struct socket *sock, int level, int optname, char __user *optval, int optlen) static int sco_sock_setsockopt(struct socket *sock, int level, int optname, char __user *optval, unsigned int optlen)
{ {
struct sock *sk = sock->sk; struct sock *sk = sock->sk;
int err = 0; int err = 0;

View File

@ -411,7 +411,7 @@ static int raw_getname(struct socket *sock, struct sockaddr *uaddr,
} }
static int raw_setsockopt(struct socket *sock, int level, int optname, static int raw_setsockopt(struct socket *sock, int level, int optname,
char __user *optval, int optlen) char __user *optval, unsigned int optlen)
{ {
struct sock *sk = sock->sk; struct sock *sk = sock->sk;
struct raw_sock *ro = raw_sk(sk); struct raw_sock *ro = raw_sk(sk);

View File

@ -331,7 +331,7 @@ struct compat_sock_fprog {
}; };
static int do_set_attach_filter(struct socket *sock, int level, int optname, static int do_set_attach_filter(struct socket *sock, int level, int optname,
char __user *optval, int optlen) char __user *optval, unsigned int optlen)
{ {
struct compat_sock_fprog __user *fprog32 = (struct compat_sock_fprog __user *)optval; struct compat_sock_fprog __user *fprog32 = (struct compat_sock_fprog __user *)optval;
struct sock_fprog __user *kfprog = compat_alloc_user_space(sizeof(struct sock_fprog)); struct sock_fprog __user *kfprog = compat_alloc_user_space(sizeof(struct sock_fprog));
@ -351,7 +351,7 @@ static int do_set_attach_filter(struct socket *sock, int level, int optname,
} }
static int do_set_sock_timeout(struct socket *sock, int level, static int do_set_sock_timeout(struct socket *sock, int level,
int optname, char __user *optval, int optlen) int optname, char __user *optval, unsigned int optlen)
{ {
struct compat_timeval __user *up = (struct compat_timeval __user *) optval; struct compat_timeval __user *up = (struct compat_timeval __user *) optval;
struct timeval ktime; struct timeval ktime;
@ -373,7 +373,7 @@ static int do_set_sock_timeout(struct socket *sock, int level,
} }
static int compat_sock_setsockopt(struct socket *sock, int level, int optname, static int compat_sock_setsockopt(struct socket *sock, int level, int optname,
char __user *optval, int optlen) char __user *optval, unsigned int optlen)
{ {
if (optname == SO_ATTACH_FILTER) if (optname == SO_ATTACH_FILTER)
return do_set_attach_filter(sock, level, optname, return do_set_attach_filter(sock, level, optname,
@ -385,7 +385,7 @@ static int compat_sock_setsockopt(struct socket *sock, int level, int optname,
} }
asmlinkage long compat_sys_setsockopt(int fd, int level, int optname, asmlinkage long compat_sys_setsockopt(int fd, int level, int optname,
char __user *optval, int optlen) char __user *optval, unsigned int optlen)
{ {
int err; int err;
struct socket *sock; struct socket *sock;
@ -558,8 +558,8 @@ struct compat_group_filter {
int compat_mc_setsockopt(struct sock *sock, int level, int optname, int compat_mc_setsockopt(struct sock *sock, int level, int optname,
char __user *optval, int optlen, char __user *optval, unsigned int optlen,
int (*setsockopt)(struct sock *,int,int,char __user *,int)) int (*setsockopt)(struct sock *,int,int,char __user *,unsigned int))
{ {
char __user *koptval = optval; char __user *koptval = optval;
int koptlen = optlen; int koptlen = optlen;

View File

@ -446,7 +446,7 @@ static inline void sock_valbool_flag(struct sock *sk, int bit, int valbool)
*/ */
int sock_setsockopt(struct socket *sock, int level, int optname, int sock_setsockopt(struct socket *sock, int level, int optname,
char __user *optval, int optlen) char __user *optval, unsigned int optlen)
{ {
struct sock *sk = sock->sk; struct sock *sk = sock->sk;
int val; int val;
@ -1697,7 +1697,7 @@ int sock_no_shutdown(struct socket *sock, int how)
EXPORT_SYMBOL(sock_no_shutdown); EXPORT_SYMBOL(sock_no_shutdown);
int sock_no_setsockopt(struct socket *sock, int level, int optname, int sock_no_setsockopt(struct socket *sock, int level, int optname,
char __user *optval, int optlen) char __user *optval, unsigned int optlen)
{ {
return -EOPNOTSUPP; return -EOPNOTSUPP;
} }
@ -2018,7 +2018,7 @@ EXPORT_SYMBOL(sock_common_recvmsg);
* Set socket options on an inet socket. * Set socket options on an inet socket.
*/ */
int sock_common_setsockopt(struct socket *sock, int level, int optname, int sock_common_setsockopt(struct socket *sock, int level, int optname,
char __user *optval, int optlen) char __user *optval, unsigned int optlen)
{ {
struct sock *sk = sock->sk; struct sock *sk = sock->sk;
@ -2028,7 +2028,7 @@ EXPORT_SYMBOL(sock_common_setsockopt);
#ifdef CONFIG_COMPAT #ifdef CONFIG_COMPAT
int compat_sock_common_setsockopt(struct socket *sock, int level, int optname, int compat_sock_common_setsockopt(struct socket *sock, int level, int optname,
char __user *optval, int optlen) char __user *optval, unsigned int optlen)
{ {
struct sock *sk = sock->sk; struct sock *sk = sock->sk;

View File

@ -290,14 +290,14 @@ extern int dccp_disconnect(struct sock *sk, int flags);
extern int dccp_getsockopt(struct sock *sk, int level, int optname, extern int dccp_getsockopt(struct sock *sk, int level, int optname,
char __user *optval, int __user *optlen); char __user *optval, int __user *optlen);
extern int dccp_setsockopt(struct sock *sk, int level, int optname, extern int dccp_setsockopt(struct sock *sk, int level, int optname,
char __user *optval, int optlen); char __user *optval, unsigned int optlen);
#ifdef CONFIG_COMPAT #ifdef CONFIG_COMPAT
extern int compat_dccp_getsockopt(struct sock *sk, extern int compat_dccp_getsockopt(struct sock *sk,
int level, int optname, int level, int optname,
char __user *optval, int __user *optlen); char __user *optval, int __user *optlen);
extern int compat_dccp_setsockopt(struct sock *sk, extern int compat_dccp_setsockopt(struct sock *sk,
int level, int optname, int level, int optname,
char __user *optval, int optlen); char __user *optval, unsigned int optlen);
#endif #endif
extern int dccp_ioctl(struct sock *sk, int cmd, unsigned long arg); extern int dccp_ioctl(struct sock *sk, int cmd, unsigned long arg);
extern int dccp_sendmsg(struct kiocb *iocb, struct sock *sk, extern int dccp_sendmsg(struct kiocb *iocb, struct sock *sk,

View File

@ -393,7 +393,7 @@ out:
EXPORT_SYMBOL_GPL(dccp_ioctl); EXPORT_SYMBOL_GPL(dccp_ioctl);
static int dccp_setsockopt_service(struct sock *sk, const __be32 service, static int dccp_setsockopt_service(struct sock *sk, const __be32 service,
char __user *optval, int optlen) char __user *optval, unsigned int optlen)
{ {
struct dccp_sock *dp = dccp_sk(sk); struct dccp_sock *dp = dccp_sk(sk);
struct dccp_service_list *sl = NULL; struct dccp_service_list *sl = NULL;
@ -464,7 +464,7 @@ static int dccp_setsockopt_cscov(struct sock *sk, int cscov, bool rx)
} }
static int dccp_setsockopt_ccid(struct sock *sk, int type, static int dccp_setsockopt_ccid(struct sock *sk, int type,
char __user *optval, int optlen) char __user *optval, unsigned int optlen)
{ {
u8 *val; u8 *val;
int rc = 0; int rc = 0;
@ -494,7 +494,7 @@ static int dccp_setsockopt_ccid(struct sock *sk, int type,
} }
static int do_dccp_setsockopt(struct sock *sk, int level, int optname, static int do_dccp_setsockopt(struct sock *sk, int level, int optname,
char __user *optval, int optlen) char __user *optval, unsigned int optlen)
{ {
struct dccp_sock *dp = dccp_sk(sk); struct dccp_sock *dp = dccp_sk(sk);
int val, err = 0; int val, err = 0;
@ -546,7 +546,7 @@ static int do_dccp_setsockopt(struct sock *sk, int level, int optname,
} }
int dccp_setsockopt(struct sock *sk, int level, int optname, int dccp_setsockopt(struct sock *sk, int level, int optname,
char __user *optval, int optlen) char __user *optval, unsigned int optlen)
{ {
if (level != SOL_DCCP) if (level != SOL_DCCP)
return inet_csk(sk)->icsk_af_ops->setsockopt(sk, level, return inet_csk(sk)->icsk_af_ops->setsockopt(sk, level,
@ -559,7 +559,7 @@ EXPORT_SYMBOL_GPL(dccp_setsockopt);
#ifdef CONFIG_COMPAT #ifdef CONFIG_COMPAT
int compat_dccp_setsockopt(struct sock *sk, int level, int optname, int compat_dccp_setsockopt(struct sock *sk, int level, int optname,
char __user *optval, int optlen) char __user *optval, unsigned int optlen)
{ {
if (level != SOL_DCCP) if (level != SOL_DCCP)
return inet_csk_compat_setsockopt(sk, level, optname, return inet_csk_compat_setsockopt(sk, level, optname,

View File

@ -157,7 +157,7 @@ static struct hlist_head dn_sk_hash[DN_SK_HASH_SIZE];
static struct hlist_head dn_wild_sk; static struct hlist_head dn_wild_sk;
static atomic_t decnet_memory_allocated; static atomic_t decnet_memory_allocated;
static int __dn_setsockopt(struct socket *sock, int level, int optname, char __user *optval, int optlen, int flags); static int __dn_setsockopt(struct socket *sock, int level, int optname, char __user *optval, unsigned int optlen, int flags);
static int __dn_getsockopt(struct socket *sock, int level, int optname, char __user *optval, int __user *optlen, int flags); static int __dn_getsockopt(struct socket *sock, int level, int optname, char __user *optval, int __user *optlen, int flags);
static struct hlist_head *dn_find_list(struct sock *sk) static struct hlist_head *dn_find_list(struct sock *sk)
@ -1325,7 +1325,7 @@ out:
return err; return err;
} }
static int dn_setsockopt(struct socket *sock, int level, int optname, char __user *optval, int optlen) static int dn_setsockopt(struct socket *sock, int level, int optname, char __user *optval, unsigned int optlen)
{ {
struct sock *sk = sock->sk; struct sock *sk = sock->sk;
int err; int err;
@ -1337,7 +1337,7 @@ static int dn_setsockopt(struct socket *sock, int level, int optname, char __use
return err; return err;
} }
static int __dn_setsockopt(struct socket *sock, int level,int optname, char __user *optval, int optlen, int flags) static int __dn_setsockopt(struct socket *sock, int level,int optname, char __user *optval, unsigned int optlen, int flags)
{ {
struct sock *sk = sock->sk; struct sock *sk = sock->sk;
struct dn_scp *scp = DN_SK(sk); struct dn_scp *scp = DN_SK(sk);

View File

@ -414,7 +414,7 @@ static int dgram_getsockopt(struct sock *sk, int level, int optname,
} }
static int dgram_setsockopt(struct sock *sk, int level, int optname, static int dgram_setsockopt(struct sock *sk, int level, int optname,
char __user *optval, int optlen) char __user *optval, unsigned int optlen)
{ {
struct dgram_sock *ro = dgram_sk(sk); struct dgram_sock *ro = dgram_sk(sk);
int val; int val;

View File

@ -244,7 +244,7 @@ static int raw_getsockopt(struct sock *sk, int level, int optname,
} }
static int raw_setsockopt(struct sock *sk, int level, int optname, static int raw_setsockopt(struct sock *sk, int level, int optname,
char __user *optval, int optlen) char __user *optval, unsigned int optlen)
{ {
return -EOPNOTSUPP; return -EOPNOTSUPP;
} }

View File

@ -714,7 +714,7 @@ int inet_csk_compat_getsockopt(struct sock *sk, int level, int optname,
EXPORT_SYMBOL_GPL(inet_csk_compat_getsockopt); EXPORT_SYMBOL_GPL(inet_csk_compat_getsockopt);
int inet_csk_compat_setsockopt(struct sock *sk, int level, int optname, int inet_csk_compat_setsockopt(struct sock *sk, int level, int optname,
char __user *optval, int optlen) char __user *optval, unsigned int optlen)
{ {
const struct inet_connection_sock *icsk = inet_csk(sk); const struct inet_connection_sock *icsk = inet_csk(sk);

View File

@ -440,7 +440,7 @@ out:
*/ */
static int do_ip_setsockopt(struct sock *sk, int level, static int do_ip_setsockopt(struct sock *sk, int level,
int optname, char __user *optval, int optlen) int optname, char __user *optval, unsigned int optlen)
{ {
struct inet_sock *inet = inet_sk(sk); struct inet_sock *inet = inet_sk(sk);
int val = 0, err; int val = 0, err;
@ -950,7 +950,7 @@ e_inval:
} }
int ip_setsockopt(struct sock *sk, int level, int ip_setsockopt(struct sock *sk, int level,
int optname, char __user *optval, int optlen) int optname, char __user *optval, unsigned int optlen)
{ {
int err; int err;
@ -975,7 +975,7 @@ EXPORT_SYMBOL(ip_setsockopt);
#ifdef CONFIG_COMPAT #ifdef CONFIG_COMPAT
int compat_ip_setsockopt(struct sock *sk, int level, int optname, int compat_ip_setsockopt(struct sock *sk, int level, int optname,
char __user *optval, int optlen) char __user *optval, unsigned int optlen)
{ {
int err; int err;

View File

@ -931,7 +931,7 @@ static void mrtsock_destruct(struct sock *sk)
* MOSPF/PIM router set up we can clean this up. * MOSPF/PIM router set up we can clean this up.
*/ */
int ip_mroute_setsockopt(struct sock *sk, int optname, char __user *optval, int optlen) int ip_mroute_setsockopt(struct sock *sk, int optname, char __user *optval, unsigned int optlen)
{ {
int ret; int ret;
struct vifctl vif; struct vifctl vif;

View File

@ -741,7 +741,7 @@ out: return ret;
} }
static int do_raw_setsockopt(struct sock *sk, int level, int optname, static int do_raw_setsockopt(struct sock *sk, int level, int optname,
char __user *optval, int optlen) char __user *optval, unsigned int optlen)
{ {
if (optname == ICMP_FILTER) { if (optname == ICMP_FILTER) {
if (inet_sk(sk)->num != IPPROTO_ICMP) if (inet_sk(sk)->num != IPPROTO_ICMP)
@ -753,7 +753,7 @@ static int do_raw_setsockopt(struct sock *sk, int level, int optname,
} }
static int raw_setsockopt(struct sock *sk, int level, int optname, static int raw_setsockopt(struct sock *sk, int level, int optname,
char __user *optval, int optlen) char __user *optval, unsigned int optlen)
{ {
if (level != SOL_RAW) if (level != SOL_RAW)
return ip_setsockopt(sk, level, optname, optval, optlen); return ip_setsockopt(sk, level, optname, optval, optlen);
@ -762,7 +762,7 @@ static int raw_setsockopt(struct sock *sk, int level, int optname,
#ifdef CONFIG_COMPAT #ifdef CONFIG_COMPAT
static int compat_raw_setsockopt(struct sock *sk, int level, int optname, static int compat_raw_setsockopt(struct sock *sk, int level, int optname,
char __user *optval, int optlen) char __user *optval, unsigned int optlen)
{ {
if (level != SOL_RAW) if (level != SOL_RAW)
return compat_ip_setsockopt(sk, level, optname, optval, optlen); return compat_ip_setsockopt(sk, level, optname, optval, optlen);

View File

@ -2032,7 +2032,7 @@ int tcp_disconnect(struct sock *sk, int flags)
* Socket option code for TCP. * Socket option code for TCP.
*/ */
static int do_tcp_setsockopt(struct sock *sk, int level, static int do_tcp_setsockopt(struct sock *sk, int level,
int optname, char __user *optval, int optlen) int optname, char __user *optval, unsigned int optlen)
{ {
struct tcp_sock *tp = tcp_sk(sk); struct tcp_sock *tp = tcp_sk(sk);
struct inet_connection_sock *icsk = inet_csk(sk); struct inet_connection_sock *icsk = inet_csk(sk);
@ -2220,7 +2220,7 @@ static int do_tcp_setsockopt(struct sock *sk, int level,
} }
int tcp_setsockopt(struct sock *sk, int level, int optname, char __user *optval, int tcp_setsockopt(struct sock *sk, int level, int optname, char __user *optval,
int optlen) unsigned int optlen)
{ {
struct inet_connection_sock *icsk = inet_csk(sk); struct inet_connection_sock *icsk = inet_csk(sk);
@ -2232,7 +2232,7 @@ int tcp_setsockopt(struct sock *sk, int level, int optname, char __user *optval,
#ifdef CONFIG_COMPAT #ifdef CONFIG_COMPAT
int compat_tcp_setsockopt(struct sock *sk, int level, int optname, int compat_tcp_setsockopt(struct sock *sk, int level, int optname,
char __user *optval, int optlen) char __user *optval, unsigned int optlen)
{ {
if (level != SOL_TCP) if (level != SOL_TCP)
return inet_csk_compat_setsockopt(sk, level, optname, return inet_csk_compat_setsockopt(sk, level, optname,

View File

@ -1359,7 +1359,7 @@ void udp_destroy_sock(struct sock *sk)
* Socket option code for UDP * Socket option code for UDP
*/ */
int udp_lib_setsockopt(struct sock *sk, int level, int optname, int udp_lib_setsockopt(struct sock *sk, int level, int optname,
char __user *optval, int optlen, char __user *optval, unsigned int optlen,
int (*push_pending_frames)(struct sock *)) int (*push_pending_frames)(struct sock *))
{ {
struct udp_sock *up = udp_sk(sk); struct udp_sock *up = udp_sk(sk);
@ -1441,7 +1441,7 @@ int udp_lib_setsockopt(struct sock *sk, int level, int optname,
EXPORT_SYMBOL(udp_lib_setsockopt); EXPORT_SYMBOL(udp_lib_setsockopt);
int udp_setsockopt(struct sock *sk, int level, int optname, int udp_setsockopt(struct sock *sk, int level, int optname,
char __user *optval, int optlen) char __user *optval, unsigned int optlen)
{ {
if (level == SOL_UDP || level == SOL_UDPLITE) if (level == SOL_UDP || level == SOL_UDPLITE)
return udp_lib_setsockopt(sk, level, optname, optval, optlen, return udp_lib_setsockopt(sk, level, optname, optval, optlen,
@ -1451,7 +1451,7 @@ int udp_setsockopt(struct sock *sk, int level, int optname,
#ifdef CONFIG_COMPAT #ifdef CONFIG_COMPAT
int compat_udp_setsockopt(struct sock *sk, int level, int optname, int compat_udp_setsockopt(struct sock *sk, int level, int optname,
char __user *optval, int optlen) char __user *optval, unsigned int optlen)
{ {
if (level == SOL_UDP || level == SOL_UDPLITE) if (level == SOL_UDP || level == SOL_UDPLITE)
return udp_lib_setsockopt(sk, level, optname, optval, optlen, return udp_lib_setsockopt(sk, level, optname, optval, optlen,

View File

@ -11,13 +11,13 @@ extern void __udp4_lib_err(struct sk_buff *, u32, struct udp_table *);
extern int udp_v4_get_port(struct sock *sk, unsigned short snum); extern int udp_v4_get_port(struct sock *sk, unsigned short snum);
extern int udp_setsockopt(struct sock *sk, int level, int optname, extern int udp_setsockopt(struct sock *sk, int level, int optname,
char __user *optval, int optlen); char __user *optval, unsigned int optlen);
extern int udp_getsockopt(struct sock *sk, int level, int optname, extern int udp_getsockopt(struct sock *sk, int level, int optname,
char __user *optval, int __user *optlen); char __user *optval, int __user *optlen);
#ifdef CONFIG_COMPAT #ifdef CONFIG_COMPAT
extern int compat_udp_setsockopt(struct sock *sk, int level, int optname, extern int compat_udp_setsockopt(struct sock *sk, int level, int optname,
char __user *optval, int optlen); char __user *optval, unsigned int optlen);
extern int compat_udp_getsockopt(struct sock *sk, int level, int optname, extern int compat_udp_getsockopt(struct sock *sk, int level, int optname,
char __user *optval, int __user *optlen); char __user *optval, int __user *optlen);
#endif #endif

View File

@ -1281,7 +1281,7 @@ int ip6mr_sk_done(struct sock *sk)
* MOSPF/PIM router set up we can clean this up. * MOSPF/PIM router set up we can clean this up.
*/ */
int ip6_mroute_setsockopt(struct sock *sk, int optname, char __user *optval, int optlen) int ip6_mroute_setsockopt(struct sock *sk, int optname, char __user *optval, unsigned int optlen)
{ {
int ret; int ret;
struct mif6ctl vif; struct mif6ctl vif;

View File

@ -123,7 +123,7 @@ struct ipv6_txoptions *ipv6_update_options(struct sock *sk,
} }
static int do_ipv6_setsockopt(struct sock *sk, int level, int optname, static int do_ipv6_setsockopt(struct sock *sk, int level, int optname,
char __user *optval, int optlen) char __user *optval, unsigned int optlen)
{ {
struct ipv6_pinfo *np = inet6_sk(sk); struct ipv6_pinfo *np = inet6_sk(sk);
struct net *net = sock_net(sk); struct net *net = sock_net(sk);
@ -773,7 +773,7 @@ e_inval:
} }
int ipv6_setsockopt(struct sock *sk, int level, int optname, int ipv6_setsockopt(struct sock *sk, int level, int optname,
char __user *optval, int optlen) char __user *optval, unsigned int optlen)
{ {
int err; int err;
@ -801,7 +801,7 @@ EXPORT_SYMBOL(ipv6_setsockopt);
#ifdef CONFIG_COMPAT #ifdef CONFIG_COMPAT
int compat_ipv6_setsockopt(struct sock *sk, int level, int optname, int compat_ipv6_setsockopt(struct sock *sk, int level, int optname,
char __user *optval, int optlen) char __user *optval, unsigned int optlen)
{ {
int err; int err;

View File

@ -957,7 +957,7 @@ static int rawv6_geticmpfilter(struct sock *sk, int level, int optname,
static int do_rawv6_setsockopt(struct sock *sk, int level, int optname, static int do_rawv6_setsockopt(struct sock *sk, int level, int optname,
char __user *optval, int optlen) char __user *optval, unsigned int optlen)
{ {
struct raw6_sock *rp = raw6_sk(sk); struct raw6_sock *rp = raw6_sk(sk);
int val; int val;
@ -1000,7 +1000,7 @@ static int do_rawv6_setsockopt(struct sock *sk, int level, int optname,
} }
static int rawv6_setsockopt(struct sock *sk, int level, int optname, static int rawv6_setsockopt(struct sock *sk, int level, int optname,
char __user *optval, int optlen) char __user *optval, unsigned int optlen)
{ {
switch(level) { switch(level) {
case SOL_RAW: case SOL_RAW:
@ -1024,7 +1024,7 @@ static int rawv6_setsockopt(struct sock *sk, int level, int optname,
#ifdef CONFIG_COMPAT #ifdef CONFIG_COMPAT
static int compat_rawv6_setsockopt(struct sock *sk, int level, int optname, static int compat_rawv6_setsockopt(struct sock *sk, int level, int optname,
char __user *optval, int optlen) char __user *optval, unsigned int optlen)
{ {
switch (level) { switch (level) {
case SOL_RAW: case SOL_RAW:

View File

@ -1044,7 +1044,7 @@ void udpv6_destroy_sock(struct sock *sk)
* Socket option code for UDP * Socket option code for UDP
*/ */
int udpv6_setsockopt(struct sock *sk, int level, int optname, int udpv6_setsockopt(struct sock *sk, int level, int optname,
char __user *optval, int optlen) char __user *optval, unsigned int optlen)
{ {
if (level == SOL_UDP || level == SOL_UDPLITE) if (level == SOL_UDP || level == SOL_UDPLITE)
return udp_lib_setsockopt(sk, level, optname, optval, optlen, return udp_lib_setsockopt(sk, level, optname, optval, optlen,
@ -1054,7 +1054,7 @@ int udpv6_setsockopt(struct sock *sk, int level, int optname,
#ifdef CONFIG_COMPAT #ifdef CONFIG_COMPAT
int compat_udpv6_setsockopt(struct sock *sk, int level, int optname, int compat_udpv6_setsockopt(struct sock *sk, int level, int optname,
char __user *optval, int optlen) char __user *optval, unsigned int optlen)
{ {
if (level == SOL_UDP || level == SOL_UDPLITE) if (level == SOL_UDP || level == SOL_UDPLITE)
return udp_lib_setsockopt(sk, level, optname, optval, optlen, return udp_lib_setsockopt(sk, level, optname, optval, optlen,

View File

@ -16,10 +16,10 @@ extern int udp_v6_get_port(struct sock *sk, unsigned short snum);
extern int udpv6_getsockopt(struct sock *sk, int level, int optname, extern int udpv6_getsockopt(struct sock *sk, int level, int optname,
char __user *optval, int __user *optlen); char __user *optval, int __user *optlen);
extern int udpv6_setsockopt(struct sock *sk, int level, int optname, extern int udpv6_setsockopt(struct sock *sk, int level, int optname,
char __user *optval, int optlen); char __user *optval, unsigned int optlen);
#ifdef CONFIG_COMPAT #ifdef CONFIG_COMPAT
extern int compat_udpv6_setsockopt(struct sock *sk, int level, int optname, extern int compat_udpv6_setsockopt(struct sock *sk, int level, int optname,
char __user *optval, int optlen); char __user *optval, unsigned int optlen);
extern int compat_udpv6_getsockopt(struct sock *sk, int level, int optname, extern int compat_udpv6_getsockopt(struct sock *sk, int level, int optname,
char __user *optval, int __user *optlen); char __user *optval, int __user *optlen);
#endif #endif

View File

@ -1292,7 +1292,7 @@ const char *ipx_device_name(struct ipx_interface *intrfc)
* socket object. */ * socket object. */
static int ipx_setsockopt(struct socket *sock, int level, int optname, static int ipx_setsockopt(struct socket *sock, int level, int optname,
char __user *optval, int optlen) char __user *optval, unsigned int optlen)
{ {
struct sock *sk = sock->sk; struct sock *sk = sock->sk;
int opt; int opt;

View File

@ -1826,7 +1826,7 @@ static int irda_compat_ioctl(struct socket *sock, unsigned int cmd, unsigned lon
* *
*/ */
static int irda_setsockopt(struct socket *sock, int level, int optname, static int irda_setsockopt(struct socket *sock, int level, int optname,
char __user *optval, int optlen) char __user *optval, unsigned int optlen)
{ {
struct sock *sk = sock->sk; struct sock *sk = sock->sk;
struct irda_sock *self = irda_sk(sk); struct irda_sock *self = irda_sk(sk);

View File

@ -1387,7 +1387,7 @@ static int iucv_sock_release(struct socket *sock)
/* getsockopt and setsockopt */ /* getsockopt and setsockopt */
static int iucv_sock_setsockopt(struct socket *sock, int level, int optname, static int iucv_sock_setsockopt(struct socket *sock, int level, int optname,
char __user *optval, int optlen) char __user *optval, unsigned int optlen)
{ {
struct sock *sk = sock->sk; struct sock *sk = sock->sk;
struct iucv_sock *iucv = iucv_sk(sk); struct iucv_sock *iucv = iucv_sk(sk);

View File

@ -973,7 +973,7 @@ static int llc_ui_ioctl(struct socket *sock, unsigned int cmd,
* Set various connection specific parameters. * Set various connection specific parameters.
*/ */
static int llc_ui_setsockopt(struct socket *sock, int level, int optname, static int llc_ui_setsockopt(struct socket *sock, int level, int optname,
char __user *optval, int optlen) char __user *optval, unsigned int optlen)
{ {
struct sock *sk = sock->sk; struct sock *sk = sock->sk;
struct llc_sock *llc = llc_sk(sk); struct llc_sock *llc = llc_sk(sk);

View File

@ -113,7 +113,7 @@ static int nf_sockopt(struct sock *sk, u_int8_t pf, int val,
} }
int nf_setsockopt(struct sock *sk, u_int8_t pf, int val, char __user *opt, int nf_setsockopt(struct sock *sk, u_int8_t pf, int val, char __user *opt,
int len) unsigned int len)
{ {
return nf_sockopt(sk, pf, val, opt, &len, 0); return nf_sockopt(sk, pf, val, opt, &len, 0);
} }
@ -154,7 +154,7 @@ static int compat_nf_sockopt(struct sock *sk, u_int8_t pf, int val,
} }
int compat_nf_setsockopt(struct sock *sk, u_int8_t pf, int compat_nf_setsockopt(struct sock *sk, u_int8_t pf,
int val, char __user *opt, int len) int val, char __user *opt, unsigned int len)
{ {
return compat_nf_sockopt(sk, pf, val, opt, &len, 0); return compat_nf_sockopt(sk, pf, val, opt, &len, 0);
} }

View File

@ -1150,7 +1150,7 @@ static void netlink_update_socket_mc(struct netlink_sock *nlk,
} }
static int netlink_setsockopt(struct socket *sock, int level, int optname, static int netlink_setsockopt(struct socket *sock, int level, int optname,
char __user *optval, int optlen) char __user *optval, unsigned int optlen)
{ {
struct sock *sk = sock->sk; struct sock *sk = sock->sk;
struct netlink_sock *nlk = nlk_sk(sk); struct netlink_sock *nlk = nlk_sk(sk);

View File

@ -301,7 +301,7 @@ void nr_destroy_socket(struct sock *sk)
*/ */
static int nr_setsockopt(struct socket *sock, int level, int optname, static int nr_setsockopt(struct socket *sock, int level, int optname,
char __user *optval, int optlen) char __user *optval, unsigned int optlen)
{ {
struct sock *sk = sock->sk; struct sock *sk = sock->sk;
struct nr_sock *nr = nr_sk(sk); struct nr_sock *nr = nr_sk(sk);

View File

@ -1701,7 +1701,7 @@ static void packet_flush_mclist(struct sock *sk)
} }
static int static int
packet_setsockopt(struct socket *sock, int level, int optname, char __user *optval, int optlen) packet_setsockopt(struct socket *sock, int level, int optname, char __user *optval, unsigned int optlen)
{ {
struct sock *sk = sock->sk; struct sock *sk = sock->sk;
struct packet_sock *po = pkt_sk(sk); struct packet_sock *po = pkt_sk(sk);

View File

@ -742,7 +742,7 @@ static int pep_init(struct sock *sk)
} }
static int pep_setsockopt(struct sock *sk, int level, int optname, static int pep_setsockopt(struct sock *sk, int level, int optname,
char __user *optval, int optlen) char __user *optval, unsigned int optlen)
{ {
struct pep_sock *pn = pep_sk(sk); struct pep_sock *pn = pep_sk(sk);
int val = 0, err = 0; int val = 0, err = 0;

View File

@ -248,7 +248,7 @@ static int rds_cong_monitor(struct rds_sock *rs, char __user *optval,
} }
static int rds_setsockopt(struct socket *sock, int level, int optname, static int rds_setsockopt(struct socket *sock, int level, int optname,
char __user *optval, int optlen) char __user *optval, unsigned int optlen)
{ {
struct rds_sock *rs = rds_sk_to_rs(sock->sk); struct rds_sock *rs = rds_sk_to_rs(sock->sk);
int ret; int ret;

View File

@ -370,7 +370,7 @@ void rose_destroy_socket(struct sock *sk)
*/ */
static int rose_setsockopt(struct socket *sock, int level, int optname, static int rose_setsockopt(struct socket *sock, int level, int optname,
char __user *optval, int optlen) char __user *optval, unsigned int optlen)
{ {
struct sock *sk = sock->sk; struct sock *sk = sock->sk;
struct rose_sock *rose = rose_sk(sk); struct rose_sock *rose = rose_sk(sk);

View File

@ -507,7 +507,7 @@ out:
* set RxRPC socket options * set RxRPC socket options
*/ */
static int rxrpc_setsockopt(struct socket *sock, int level, int optname, static int rxrpc_setsockopt(struct socket *sock, int level, int optname,
char __user *optval, int optlen) char __user *optval, unsigned int optlen)
{ {
struct rxrpc_sock *rx = rxrpc_sk(sock->sk); struct rxrpc_sock *rx = rxrpc_sk(sock->sk);
unsigned min_sec_level; unsigned min_sec_level;

View File

@ -2027,7 +2027,8 @@ out:
* instead a error will be indicated to the user. * instead a error will be indicated to the user.
*/ */
static int sctp_setsockopt_disable_fragments(struct sock *sk, static int sctp_setsockopt_disable_fragments(struct sock *sk,
char __user *optval, int optlen) char __user *optval,
unsigned int optlen)
{ {
int val; int val;
@ -2043,7 +2044,7 @@ static int sctp_setsockopt_disable_fragments(struct sock *sk,
} }
static int sctp_setsockopt_events(struct sock *sk, char __user *optval, static int sctp_setsockopt_events(struct sock *sk, char __user *optval,
int optlen) unsigned int optlen)
{ {
if (optlen > sizeof(struct sctp_event_subscribe)) if (optlen > sizeof(struct sctp_event_subscribe))
return -EINVAL; return -EINVAL;
@ -2064,7 +2065,7 @@ static int sctp_setsockopt_events(struct sock *sk, char __user *optval,
* association is closed. * association is closed.
*/ */
static int sctp_setsockopt_autoclose(struct sock *sk, char __user *optval, static int sctp_setsockopt_autoclose(struct sock *sk, char __user *optval,
int optlen) unsigned int optlen)
{ {
struct sctp_sock *sp = sctp_sk(sk); struct sctp_sock *sp = sctp_sk(sk);
@ -2318,7 +2319,8 @@ static int sctp_apply_peer_addr_params(struct sctp_paddrparams *params,
} }
static int sctp_setsockopt_peer_addr_params(struct sock *sk, static int sctp_setsockopt_peer_addr_params(struct sock *sk,
char __user *optval, int optlen) char __user *optval,
unsigned int optlen)
{ {
struct sctp_paddrparams params; struct sctp_paddrparams params;
struct sctp_transport *trans = NULL; struct sctp_transport *trans = NULL;
@ -2430,7 +2432,7 @@ static int sctp_setsockopt_peer_addr_params(struct sock *sk,
*/ */
static int sctp_setsockopt_delayed_ack(struct sock *sk, static int sctp_setsockopt_delayed_ack(struct sock *sk,
char __user *optval, int optlen) char __user *optval, unsigned int optlen)
{ {
struct sctp_sack_info params; struct sctp_sack_info params;
struct sctp_transport *trans = NULL; struct sctp_transport *trans = NULL;
@ -2546,7 +2548,7 @@ static int sctp_setsockopt_delayed_ack(struct sock *sk,
* by the change). With TCP-style sockets, this option is inherited by * by the change). With TCP-style sockets, this option is inherited by
* sockets derived from a listener socket. * sockets derived from a listener socket.
*/ */
static int sctp_setsockopt_initmsg(struct sock *sk, char __user *optval, int optlen) static int sctp_setsockopt_initmsg(struct sock *sk, char __user *optval, unsigned int optlen)
{ {
struct sctp_initmsg sinit; struct sctp_initmsg sinit;
struct sctp_sock *sp = sctp_sk(sk); struct sctp_sock *sp = sctp_sk(sk);
@ -2583,7 +2585,8 @@ static int sctp_setsockopt_initmsg(struct sock *sk, char __user *optval, int opt
* to this call if the caller is using the UDP model. * to this call if the caller is using the UDP model.
*/ */
static int sctp_setsockopt_default_send_param(struct sock *sk, static int sctp_setsockopt_default_send_param(struct sock *sk,
char __user *optval, int optlen) char __user *optval,
unsigned int optlen)
{ {
struct sctp_sndrcvinfo info; struct sctp_sndrcvinfo info;
struct sctp_association *asoc; struct sctp_association *asoc;
@ -2622,7 +2625,7 @@ static int sctp_setsockopt_default_send_param(struct sock *sk,
* association peer's addresses. * association peer's addresses.
*/ */
static int sctp_setsockopt_primary_addr(struct sock *sk, char __user *optval, static int sctp_setsockopt_primary_addr(struct sock *sk, char __user *optval,
int optlen) unsigned int optlen)
{ {
struct sctp_prim prim; struct sctp_prim prim;
struct sctp_transport *trans; struct sctp_transport *trans;
@ -2651,7 +2654,7 @@ static int sctp_setsockopt_primary_addr(struct sock *sk, char __user *optval,
* integer boolean flag. * integer boolean flag.
*/ */
static int sctp_setsockopt_nodelay(struct sock *sk, char __user *optval, static int sctp_setsockopt_nodelay(struct sock *sk, char __user *optval,
int optlen) unsigned int optlen)
{ {
int val; int val;
@ -2676,7 +2679,8 @@ static int sctp_setsockopt_nodelay(struct sock *sk, char __user *optval,
* be changed. * be changed.
* *
*/ */
static int sctp_setsockopt_rtoinfo(struct sock *sk, char __user *optval, int optlen) { static int sctp_setsockopt_rtoinfo(struct sock *sk, char __user *optval, unsigned int optlen)
{
struct sctp_rtoinfo rtoinfo; struct sctp_rtoinfo rtoinfo;
struct sctp_association *asoc; struct sctp_association *asoc;
@ -2728,7 +2732,7 @@ static int sctp_setsockopt_rtoinfo(struct sock *sk, char __user *optval, int opt
* See [SCTP] for more information. * See [SCTP] for more information.
* *
*/ */
static int sctp_setsockopt_associnfo(struct sock *sk, char __user *optval, int optlen) static int sctp_setsockopt_associnfo(struct sock *sk, char __user *optval, unsigned int optlen)
{ {
struct sctp_assocparams assocparams; struct sctp_assocparams assocparams;
@ -2800,7 +2804,7 @@ static int sctp_setsockopt_associnfo(struct sock *sk, char __user *optval, int o
* addresses and a user will receive both PF_INET6 and PF_INET type * addresses and a user will receive both PF_INET6 and PF_INET type
* addresses on the socket. * addresses on the socket.
*/ */
static int sctp_setsockopt_mappedv4(struct sock *sk, char __user *optval, int optlen) static int sctp_setsockopt_mappedv4(struct sock *sk, char __user *optval, unsigned int optlen)
{ {
int val; int val;
struct sctp_sock *sp = sctp_sk(sk); struct sctp_sock *sp = sctp_sk(sk);
@ -2844,7 +2848,7 @@ static int sctp_setsockopt_mappedv4(struct sock *sk, char __user *optval, int op
* changed (effecting future associations only). * changed (effecting future associations only).
* assoc_value: This parameter specifies the maximum size in bytes. * assoc_value: This parameter specifies the maximum size in bytes.
*/ */
static int sctp_setsockopt_maxseg(struct sock *sk, char __user *optval, int optlen) static int sctp_setsockopt_maxseg(struct sock *sk, char __user *optval, unsigned int optlen)
{ {
struct sctp_assoc_value params; struct sctp_assoc_value params;
struct sctp_association *asoc; struct sctp_association *asoc;
@ -2899,7 +2903,7 @@ static int sctp_setsockopt_maxseg(struct sock *sk, char __user *optval, int optl
* set primary request: * set primary request:
*/ */
static int sctp_setsockopt_peer_primary_addr(struct sock *sk, char __user *optval, static int sctp_setsockopt_peer_primary_addr(struct sock *sk, char __user *optval,
int optlen) unsigned int optlen)
{ {
struct sctp_sock *sp; struct sctp_sock *sp;
struct sctp_endpoint *ep; struct sctp_endpoint *ep;
@ -2950,7 +2954,7 @@ static int sctp_setsockopt_peer_primary_addr(struct sock *sk, char __user *optva
} }
static int sctp_setsockopt_adaptation_layer(struct sock *sk, char __user *optval, static int sctp_setsockopt_adaptation_layer(struct sock *sk, char __user *optval,
int optlen) unsigned int optlen)
{ {
struct sctp_setadaptation adaptation; struct sctp_setadaptation adaptation;
@ -2979,7 +2983,7 @@ static int sctp_setsockopt_adaptation_layer(struct sock *sk, char __user *optval
* saved with outbound messages. * saved with outbound messages.
*/ */
static int sctp_setsockopt_context(struct sock *sk, char __user *optval, static int sctp_setsockopt_context(struct sock *sk, char __user *optval,
int optlen) unsigned int optlen)
{ {
struct sctp_assoc_value params; struct sctp_assoc_value params;
struct sctp_sock *sp; struct sctp_sock *sp;
@ -3030,7 +3034,7 @@ static int sctp_setsockopt_context(struct sock *sk, char __user *optval,
*/ */
static int sctp_setsockopt_fragment_interleave(struct sock *sk, static int sctp_setsockopt_fragment_interleave(struct sock *sk,
char __user *optval, char __user *optval,
int optlen) unsigned int optlen)
{ {
int val; int val;
@ -3063,7 +3067,7 @@ static int sctp_setsockopt_fragment_interleave(struct sock *sk,
*/ */
static int sctp_setsockopt_partial_delivery_point(struct sock *sk, static int sctp_setsockopt_partial_delivery_point(struct sock *sk,
char __user *optval, char __user *optval,
int optlen) unsigned int optlen)
{ {
u32 val; u32 val;
@ -3096,7 +3100,7 @@ static int sctp_setsockopt_partial_delivery_point(struct sock *sk,
*/ */
static int sctp_setsockopt_maxburst(struct sock *sk, static int sctp_setsockopt_maxburst(struct sock *sk,
char __user *optval, char __user *optval,
int optlen) unsigned int optlen)
{ {
struct sctp_assoc_value params; struct sctp_assoc_value params;
struct sctp_sock *sp; struct sctp_sock *sp;
@ -3140,8 +3144,8 @@ static int sctp_setsockopt_maxburst(struct sock *sk,
* will only effect future associations on the socket. * will only effect future associations on the socket.
*/ */
static int sctp_setsockopt_auth_chunk(struct sock *sk, static int sctp_setsockopt_auth_chunk(struct sock *sk,
char __user *optval, char __user *optval,
int optlen) unsigned int optlen)
{ {
struct sctp_authchunk val; struct sctp_authchunk val;
@ -3172,8 +3176,8 @@ static int sctp_setsockopt_auth_chunk(struct sock *sk,
* endpoint requires the peer to use. * endpoint requires the peer to use.
*/ */
static int sctp_setsockopt_hmac_ident(struct sock *sk, static int sctp_setsockopt_hmac_ident(struct sock *sk,
char __user *optval, char __user *optval,
int optlen) unsigned int optlen)
{ {
struct sctp_hmacalgo *hmacs; struct sctp_hmacalgo *hmacs;
u32 idents; u32 idents;
@ -3215,7 +3219,7 @@ out:
*/ */
static int sctp_setsockopt_auth_key(struct sock *sk, static int sctp_setsockopt_auth_key(struct sock *sk,
char __user *optval, char __user *optval,
int optlen) unsigned int optlen)
{ {
struct sctp_authkey *authkey; struct sctp_authkey *authkey;
struct sctp_association *asoc; struct sctp_association *asoc;
@ -3260,8 +3264,8 @@ out:
* the association shared key. * the association shared key.
*/ */
static int sctp_setsockopt_active_key(struct sock *sk, static int sctp_setsockopt_active_key(struct sock *sk,
char __user *optval, char __user *optval,
int optlen) unsigned int optlen)
{ {
struct sctp_authkeyid val; struct sctp_authkeyid val;
struct sctp_association *asoc; struct sctp_association *asoc;
@ -3288,8 +3292,8 @@ static int sctp_setsockopt_active_key(struct sock *sk,
* This set option will delete a shared secret key from use. * This set option will delete a shared secret key from use.
*/ */
static int sctp_setsockopt_del_key(struct sock *sk, static int sctp_setsockopt_del_key(struct sock *sk,
char __user *optval, char __user *optval,
int optlen) unsigned int optlen)
{ {
struct sctp_authkeyid val; struct sctp_authkeyid val;
struct sctp_association *asoc; struct sctp_association *asoc;
@ -3332,7 +3336,7 @@ static int sctp_setsockopt_del_key(struct sock *sk,
* optlen - the size of the buffer. * optlen - the size of the buffer.
*/ */
SCTP_STATIC int sctp_setsockopt(struct sock *sk, int level, int optname, SCTP_STATIC int sctp_setsockopt(struct sock *sk, int level, int optname,
char __user *optval, int optlen) char __user *optval, unsigned int optlen)
{ {
int retval = 0; int retval = 0;

View File

@ -2391,7 +2391,7 @@ int kernel_getsockopt(struct socket *sock, int level, int optname,
} }
int kernel_setsockopt(struct socket *sock, int level, int optname, int kernel_setsockopt(struct socket *sock, int level, int optname,
char *optval, int optlen) char *optval, unsigned int optlen)
{ {
mm_segment_t oldfs = get_fs(); mm_segment_t oldfs = get_fs();
int err; int err;

View File

@ -1658,7 +1658,7 @@ restart:
*/ */
static int setsockopt(struct socket *sock, static int setsockopt(struct socket *sock,
int lvl, int opt, char __user *ov, int ol) int lvl, int opt, char __user *ov, unsigned int ol)
{ {
struct sock *sk = sock->sk; struct sock *sk = sock->sk;
struct tipc_port *tport = tipc_sk_port(sk); struct tipc_port *tport = tipc_sk_port(sk);

View File

@ -409,7 +409,7 @@ static void x25_destroy_socket(struct sock *sk)
*/ */
static int x25_setsockopt(struct socket *sock, int level, int optname, static int x25_setsockopt(struct socket *sock, int level, int optname,
char __user *optval, int optlen) char __user *optval, unsigned int optlen)
{ {
int opt; int opt;
struct sock *sk = sock->sk; struct sock *sk = sock->sk;