Loading include/net/transp_v6.h +2 −1 Original line number Original line Diff line number Diff line Loading @@ -40,7 +40,8 @@ extern int datagram_recv_ctl(struct sock *sk, struct msghdr *msg, struct msghdr *msg, struct sk_buff *skb); struct sk_buff *skb); extern int datagram_send_ctl(struct msghdr *msg, extern int datagram_send_ctl(struct net *net, struct msghdr *msg, struct flowi *fl, struct flowi *fl, struct ipv6_txoptions *opt, struct ipv6_txoptions *opt, int *hlimit, int *tclass); int *hlimit, int *tclass); Loading net/ipv6/datagram.c +4 −3 Original line number Original line Diff line number Diff line Loading @@ -496,7 +496,8 @@ int datagram_recv_ctl(struct sock *sk, struct msghdr *msg, struct sk_buff *skb) return 0; return 0; } } int datagram_send_ctl(struct msghdr *msg, struct flowi *fl, int datagram_send_ctl(struct net *net, struct msghdr *msg, struct flowi *fl, struct ipv6_txoptions *opt, struct ipv6_txoptions *opt, int *hlimit, int *tclass) int *hlimit, int *tclass) { { Loading Loading @@ -540,7 +541,7 @@ int datagram_send_ctl(struct msghdr *msg, struct flowi *fl, addr_type = __ipv6_addr_type(&src_info->ipi6_addr); addr_type = __ipv6_addr_type(&src_info->ipi6_addr); if (fl->oif) { if (fl->oif) { dev = dev_get_by_index(&init_net, fl->oif); dev = dev_get_by_index(net, fl->oif); if (!dev) if (!dev) return -ENODEV; return -ENODEV; } else if (addr_type & IPV6_ADDR_LINKLOCAL) } else if (addr_type & IPV6_ADDR_LINKLOCAL) Loading @@ -548,7 +549,7 @@ int datagram_send_ctl(struct msghdr *msg, struct flowi *fl, if (addr_type != IPV6_ADDR_ANY) { if (addr_type != IPV6_ADDR_ANY) { int strict = __ipv6_addr_src_scope(addr_type) <= IPV6_ADDR_SCOPE_LINKLOCAL; int strict = __ipv6_addr_src_scope(addr_type) <= IPV6_ADDR_SCOPE_LINKLOCAL; if (!ipv6_chk_addr(&init_net, &src_info->ipi6_addr, if (!ipv6_chk_addr(net, &src_info->ipi6_addr, strict ? dev : NULL, 0)) strict ? dev : NULL, 0)) err = -EINVAL; err = -EINVAL; else else Loading net/ipv6/ip6_flowlabel.c +1 −1 Original line number Original line Diff line number Diff line Loading @@ -354,7 +354,7 @@ fl_create(struct net *net, struct in6_flowlabel_req *freq, char __user *optval, msg.msg_control = (void*)(fl->opt+1); msg.msg_control = (void*)(fl->opt+1); flowi.oif = 0; flowi.oif = 0; err = datagram_send_ctl(&msg, &flowi, fl->opt, &junk, &junk); err = datagram_send_ctl(net, &msg, &flowi, fl->opt, &junk, &junk); if (err) if (err) goto done; goto done; err = -EINVAL; err = -EINVAL; Loading net/ipv6/ipv6_sockglue.c +1 −1 Original line number Original line Diff line number Diff line Loading @@ -416,7 +416,7 @@ static int do_ipv6_setsockopt(struct sock *sk, int level, int optname, msg.msg_controllen = optlen; msg.msg_controllen = optlen; msg.msg_control = (void*)(opt+1); msg.msg_control = (void*)(opt+1); retv = datagram_send_ctl(&msg, &fl, opt, &junk, &junk); retv = datagram_send_ctl(net, &msg, &fl, opt, &junk, &junk); if (retv) if (retv) goto done; goto done; update: update: Loading net/ipv6/raw.c +1 −1 Original line number Original line Diff line number Diff line Loading @@ -813,7 +813,7 @@ static int rawv6_sendmsg(struct kiocb *iocb, struct sock *sk, memset(opt, 0, sizeof(struct ipv6_txoptions)); memset(opt, 0, sizeof(struct ipv6_txoptions)); opt->tot_len = sizeof(struct ipv6_txoptions); opt->tot_len = sizeof(struct ipv6_txoptions); err = datagram_send_ctl(msg, &fl, opt, &hlimit, &tclass); err = datagram_send_ctl(sock_net(sk), msg, &fl, opt, &hlimit, &tclass); if (err < 0) { if (err < 0) { fl6_sock_release(flowlabel); fl6_sock_release(flowlabel); return err; return err; Loading Loading
include/net/transp_v6.h +2 −1 Original line number Original line Diff line number Diff line Loading @@ -40,7 +40,8 @@ extern int datagram_recv_ctl(struct sock *sk, struct msghdr *msg, struct msghdr *msg, struct sk_buff *skb); struct sk_buff *skb); extern int datagram_send_ctl(struct msghdr *msg, extern int datagram_send_ctl(struct net *net, struct msghdr *msg, struct flowi *fl, struct flowi *fl, struct ipv6_txoptions *opt, struct ipv6_txoptions *opt, int *hlimit, int *tclass); int *hlimit, int *tclass); Loading
net/ipv6/datagram.c +4 −3 Original line number Original line Diff line number Diff line Loading @@ -496,7 +496,8 @@ int datagram_recv_ctl(struct sock *sk, struct msghdr *msg, struct sk_buff *skb) return 0; return 0; } } int datagram_send_ctl(struct msghdr *msg, struct flowi *fl, int datagram_send_ctl(struct net *net, struct msghdr *msg, struct flowi *fl, struct ipv6_txoptions *opt, struct ipv6_txoptions *opt, int *hlimit, int *tclass) int *hlimit, int *tclass) { { Loading Loading @@ -540,7 +541,7 @@ int datagram_send_ctl(struct msghdr *msg, struct flowi *fl, addr_type = __ipv6_addr_type(&src_info->ipi6_addr); addr_type = __ipv6_addr_type(&src_info->ipi6_addr); if (fl->oif) { if (fl->oif) { dev = dev_get_by_index(&init_net, fl->oif); dev = dev_get_by_index(net, fl->oif); if (!dev) if (!dev) return -ENODEV; return -ENODEV; } else if (addr_type & IPV6_ADDR_LINKLOCAL) } else if (addr_type & IPV6_ADDR_LINKLOCAL) Loading @@ -548,7 +549,7 @@ int datagram_send_ctl(struct msghdr *msg, struct flowi *fl, if (addr_type != IPV6_ADDR_ANY) { if (addr_type != IPV6_ADDR_ANY) { int strict = __ipv6_addr_src_scope(addr_type) <= IPV6_ADDR_SCOPE_LINKLOCAL; int strict = __ipv6_addr_src_scope(addr_type) <= IPV6_ADDR_SCOPE_LINKLOCAL; if (!ipv6_chk_addr(&init_net, &src_info->ipi6_addr, if (!ipv6_chk_addr(net, &src_info->ipi6_addr, strict ? dev : NULL, 0)) strict ? dev : NULL, 0)) err = -EINVAL; err = -EINVAL; else else Loading
net/ipv6/ip6_flowlabel.c +1 −1 Original line number Original line Diff line number Diff line Loading @@ -354,7 +354,7 @@ fl_create(struct net *net, struct in6_flowlabel_req *freq, char __user *optval, msg.msg_control = (void*)(fl->opt+1); msg.msg_control = (void*)(fl->opt+1); flowi.oif = 0; flowi.oif = 0; err = datagram_send_ctl(&msg, &flowi, fl->opt, &junk, &junk); err = datagram_send_ctl(net, &msg, &flowi, fl->opt, &junk, &junk); if (err) if (err) goto done; goto done; err = -EINVAL; err = -EINVAL; Loading
net/ipv6/ipv6_sockglue.c +1 −1 Original line number Original line Diff line number Diff line Loading @@ -416,7 +416,7 @@ static int do_ipv6_setsockopt(struct sock *sk, int level, int optname, msg.msg_controllen = optlen; msg.msg_controllen = optlen; msg.msg_control = (void*)(opt+1); msg.msg_control = (void*)(opt+1); retv = datagram_send_ctl(&msg, &fl, opt, &junk, &junk); retv = datagram_send_ctl(net, &msg, &fl, opt, &junk, &junk); if (retv) if (retv) goto done; goto done; update: update: Loading
net/ipv6/raw.c +1 −1 Original line number Original line Diff line number Diff line Loading @@ -813,7 +813,7 @@ static int rawv6_sendmsg(struct kiocb *iocb, struct sock *sk, memset(opt, 0, sizeof(struct ipv6_txoptions)); memset(opt, 0, sizeof(struct ipv6_txoptions)); opt->tot_len = sizeof(struct ipv6_txoptions); opt->tot_len = sizeof(struct ipv6_txoptions); err = datagram_send_ctl(msg, &fl, opt, &hlimit, &tclass); err = datagram_send_ctl(sock_net(sk), msg, &fl, opt, &hlimit, &tclass); if (err < 0) { if (err < 0) { fl6_sock_release(flowlabel); fl6_sock_release(flowlabel); return err; return err; Loading