| .. | .. |
|---|
| 8 | 8 | #include <net/fib_notifier.h> |
|---|
| 9 | 9 | #include <uapi/linux/mroute.h> |
|---|
| 10 | 10 | #include <linux/mroute_base.h> |
|---|
| 11 | +#include <linux/sockptr.h> |
|---|
| 11 | 12 | |
|---|
| 12 | 13 | #ifdef CONFIG_IP_MROUTE |
|---|
| 13 | 14 | static inline int ip_mroute_opt(int opt) |
|---|
| .. | .. |
|---|
| 15 | 16 | return opt >= MRT_BASE && opt <= MRT_MAX; |
|---|
| 16 | 17 | } |
|---|
| 17 | 18 | |
|---|
| 18 | | -int ip_mroute_setsockopt(struct sock *, int, char __user *, unsigned int); |
|---|
| 19 | +int ip_mroute_setsockopt(struct sock *, int, sockptr_t, unsigned int); |
|---|
| 19 | 20 | int ip_mroute_getsockopt(struct sock *, int, char __user *, int __user *); |
|---|
| 20 | 21 | int ipmr_ioctl(struct sock *sk, int cmd, void __user *arg); |
|---|
| 21 | 22 | int ipmr_compat_ioctl(struct sock *sk, unsigned int cmd, void __user *arg); |
|---|
| .. | .. |
|---|
| 23 | 24 | bool ipmr_rule_default(const struct fib_rule *rule); |
|---|
| 24 | 25 | #else |
|---|
| 25 | 26 | static inline int ip_mroute_setsockopt(struct sock *sock, int optname, |
|---|
| 26 | | - char __user *optval, unsigned int optlen) |
|---|
| 27 | + sockptr_t optval, unsigned int optlen) |
|---|
| 27 | 28 | { |
|---|
| 28 | 29 | return -ENOPROTOOPT; |
|---|
| 29 | 30 | } |
|---|