#include <asm/uaccess.h>
-DEFINE_SNMP_STAT(struct ipv6_mib, ipv6_statistics);
+DEFINE_SNMP_STAT(struct ipstats_mib, ipv6_statistics);
static struct packet_type ipv6_packet_type = {
.type = __constant_htons(ETH_P_IPV6),
struct group_source_req *pgsr);
extern int ip6_mc_msfilter(struct sock *sk, struct group_filter *gsf);
extern int ip6_mc_msfget(struct sock *sk, struct group_filter *gsf,
- struct group_filter *optval, int *optlen);
+ struct group_filter __user *optval, int __user *optlen);
-int ipv6_setsockopt(struct sock *sk, int level, int optname, char *optval,
- int optlen)
+int ipv6_setsockopt(struct sock *sk, int level, int optname,
+ char __user *optval, int optlen)
{
struct ipv6_pinfo *np = inet6_sk(sk);
int val, valbool;
if (optval == NULL)
val=0;
- else if (get_user(val, (int *) optval))
+ else if (get_user(val, (int __user *) optval))
return -EFAULT;
valbool = (val!=0);
return -EINVAL;
}
-int ipv6_getsockopt(struct sock *sk, int level, int optname, char *optval,
- int *optlen)
+int ipv6_getsockopt(struct sock *sk, int level, int optname,
+ char __user *optval, int __user *optlen)
{
struct ipv6_pinfo *np = inet6_sk(sk);
int len;
return -EFAULT;
lock_sock(sk);
err = ip6_mc_msfget(sk, &gsf,
- (struct group_filter *)optval, optlen);
+ (struct group_filter __user *)optval, optlen);
release_sock(sk);
return err;
}