diff options
Diffstat (limited to 'net/ipv4/ipmr.c')
-rw-r--r-- | net/ipv4/ipmr.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/net/ipv4/ipmr.c b/net/ipv4/ipmr.c index 772daf77878f..4198615ca678 100644 --- a/net/ipv4/ipmr.c +++ b/net/ipv4/ipmr.c | |||
@@ -141,7 +141,7 @@ struct net_device *ipmr_new_tunnel(struct vifctl *v) | |||
141 | p.iph.ihl = 5; | 141 | p.iph.ihl = 5; |
142 | p.iph.protocol = IPPROTO_IPIP; | 142 | p.iph.protocol = IPPROTO_IPIP; |
143 | sprintf(p.name, "dvmrp%d", v->vifc_vifi); | 143 | sprintf(p.name, "dvmrp%d", v->vifc_vifi); |
144 | ifr.ifr_ifru.ifru_data = (void*)&p; | 144 | ifr.ifr_ifru.ifru_data = (__force void __user *)&p; |
145 | 145 | ||
146 | oldfs = get_fs(); set_fs(KERNEL_DS); | 146 | oldfs = get_fs(); set_fs(KERNEL_DS); |
147 | err = dev->do_ioctl(dev, &ifr, SIOCADDTUNNEL); | 147 | err = dev->do_ioctl(dev, &ifr, SIOCADDTUNNEL); |
@@ -954,10 +954,12 @@ int ip_mroute_setsockopt(struct sock *sk,int optname,char __user *optval,int opt | |||
954 | #ifdef CONFIG_IP_PIMSM | 954 | #ifdef CONFIG_IP_PIMSM |
955 | case MRT_PIM: | 955 | case MRT_PIM: |
956 | { | 956 | { |
957 | int v, ret; | 957 | int v; |
958 | |||
958 | if (get_user(v,(int __user *)optval)) | 959 | if (get_user(v,(int __user *)optval)) |
959 | return -EFAULT; | 960 | return -EFAULT; |
960 | v = (v)?1:0; | 961 | v = (v) ? 1 : 0; |
962 | |||
961 | rtnl_lock(); | 963 | rtnl_lock(); |
962 | ret = 0; | 964 | ret = 0; |
963 | if (v != mroute_do_pim) { | 965 | if (v != mroute_do_pim) { |
@@ -1659,6 +1661,7 @@ static struct vif_device *ipmr_vif_seq_idx(struct ipmr_vif_iter *iter, | |||
1659 | } | 1661 | } |
1660 | 1662 | ||
1661 | static void *ipmr_vif_seq_start(struct seq_file *seq, loff_t *pos) | 1663 | static void *ipmr_vif_seq_start(struct seq_file *seq, loff_t *pos) |
1664 | __acquires(mrt_lock) | ||
1662 | { | 1665 | { |
1663 | read_lock(&mrt_lock); | 1666 | read_lock(&mrt_lock); |
1664 | return *pos ? ipmr_vif_seq_idx(seq->private, *pos - 1) | 1667 | return *pos ? ipmr_vif_seq_idx(seq->private, *pos - 1) |
@@ -1682,6 +1685,7 @@ static void *ipmr_vif_seq_next(struct seq_file *seq, void *v, loff_t *pos) | |||
1682 | } | 1685 | } |
1683 | 1686 | ||
1684 | static void ipmr_vif_seq_stop(struct seq_file *seq, void *v) | 1687 | static void ipmr_vif_seq_stop(struct seq_file *seq, void *v) |
1688 | __releases(mrt_lock) | ||
1685 | { | 1689 | { |
1686 | read_unlock(&mrt_lock); | 1690 | read_unlock(&mrt_lock); |
1687 | } | 1691 | } |