diff options
Diffstat (limited to 'net/ipv6/af_inet6.c')
| -rw-r--r-- | net/ipv6/af_inet6.c | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/net/ipv6/af_inet6.c b/net/ipv6/af_inet6.c index e733942dafe1..56b9bf2516f4 100644 --- a/net/ipv6/af_inet6.c +++ b/net/ipv6/af_inet6.c | |||
| @@ -522,10 +522,10 @@ const struct proto_ops inet6_stream_ops = { | |||
| 522 | .shutdown = inet_shutdown, /* ok */ | 522 | .shutdown = inet_shutdown, /* ok */ |
| 523 | .setsockopt = sock_common_setsockopt, /* ok */ | 523 | .setsockopt = sock_common_setsockopt, /* ok */ |
| 524 | .getsockopt = sock_common_getsockopt, /* ok */ | 524 | .getsockopt = sock_common_getsockopt, /* ok */ |
| 525 | .sendmsg = tcp_sendmsg, /* ok */ | 525 | .sendmsg = inet_sendmsg, /* ok */ |
| 526 | .recvmsg = sock_common_recvmsg, /* ok */ | 526 | .recvmsg = inet_recvmsg, /* ok */ |
| 527 | .mmap = sock_no_mmap, | 527 | .mmap = sock_no_mmap, |
| 528 | .sendpage = tcp_sendpage, | 528 | .sendpage = inet_sendpage, |
| 529 | .splice_read = tcp_splice_read, | 529 | .splice_read = tcp_splice_read, |
| 530 | #ifdef CONFIG_COMPAT | 530 | #ifdef CONFIG_COMPAT |
| 531 | .compat_setsockopt = compat_sock_common_setsockopt, | 531 | .compat_setsockopt = compat_sock_common_setsockopt, |
| @@ -549,7 +549,7 @@ const struct proto_ops inet6_dgram_ops = { | |||
| 549 | .setsockopt = sock_common_setsockopt, /* ok */ | 549 | .setsockopt = sock_common_setsockopt, /* ok */ |
| 550 | .getsockopt = sock_common_getsockopt, /* ok */ | 550 | .getsockopt = sock_common_getsockopt, /* ok */ |
| 551 | .sendmsg = inet_sendmsg, /* ok */ | 551 | .sendmsg = inet_sendmsg, /* ok */ |
| 552 | .recvmsg = sock_common_recvmsg, /* ok */ | 552 | .recvmsg = inet_recvmsg, /* ok */ |
| 553 | .mmap = sock_no_mmap, | 553 | .mmap = sock_no_mmap, |
| 554 | .sendpage = sock_no_sendpage, | 554 | .sendpage = sock_no_sendpage, |
| 555 | #ifdef CONFIG_COMPAT | 555 | #ifdef CONFIG_COMPAT |
| @@ -651,7 +651,7 @@ int inet6_sk_rebuild_header(struct sock *sk) | |||
| 651 | 651 | ||
| 652 | if (dst == NULL) { | 652 | if (dst == NULL) { |
| 653 | struct inet_sock *inet = inet_sk(sk); | 653 | struct inet_sock *inet = inet_sk(sk); |
| 654 | struct in6_addr *final_p = NULL, final; | 654 | struct in6_addr *final_p, final; |
| 655 | struct flowi fl; | 655 | struct flowi fl; |
| 656 | 656 | ||
| 657 | memset(&fl, 0, sizeof(fl)); | 657 | memset(&fl, 0, sizeof(fl)); |
| @@ -665,12 +665,7 @@ int inet6_sk_rebuild_header(struct sock *sk) | |||
| 665 | fl.fl_ip_sport = inet->inet_sport; | 665 | fl.fl_ip_sport = inet->inet_sport; |
| 666 | security_sk_classify_flow(sk, &fl); | 666 | security_sk_classify_flow(sk, &fl); |
| 667 | 667 | ||
| 668 | if (np->opt && np->opt->srcrt) { | 668 | final_p = fl6_update_dst(&fl, np->opt, &final); |
| 669 | struct rt0_hdr *rt0 = (struct rt0_hdr *) np->opt->srcrt; | ||
| 670 | ipv6_addr_copy(&final, &fl.fl6_dst); | ||
| 671 | ipv6_addr_copy(&fl.fl6_dst, rt0->addr); | ||
| 672 | final_p = &final; | ||
| 673 | } | ||
| 674 | 669 | ||
| 675 | err = ip6_dst_lookup(sk, &dst, &fl); | 670 | err = ip6_dst_lookup(sk, &dst, &fl); |
| 676 | if (err) { | 671 | if (err) { |
| @@ -976,19 +971,24 @@ static void ipv6_packet_cleanup(void) | |||
| 976 | static int __net_init ipv6_init_mibs(struct net *net) | 971 | static int __net_init ipv6_init_mibs(struct net *net) |
| 977 | { | 972 | { |
| 978 | if (snmp_mib_init((void __percpu **)net->mib.udp_stats_in6, | 973 | if (snmp_mib_init((void __percpu **)net->mib.udp_stats_in6, |
| 979 | sizeof (struct udp_mib)) < 0) | 974 | sizeof(struct udp_mib), |
| 975 | __alignof__(struct udp_mib)) < 0) | ||
| 980 | return -ENOMEM; | 976 | return -ENOMEM; |
| 981 | if (snmp_mib_init((void __percpu **)net->mib.udplite_stats_in6, | 977 | if (snmp_mib_init((void __percpu **)net->mib.udplite_stats_in6, |
| 982 | sizeof (struct udp_mib)) < 0) | 978 | sizeof(struct udp_mib), |
| 979 | __alignof__(struct udp_mib)) < 0) | ||
| 983 | goto err_udplite_mib; | 980 | goto err_udplite_mib; |
| 984 | if (snmp_mib_init((void __percpu **)net->mib.ipv6_statistics, | 981 | if (snmp_mib_init((void __percpu **)net->mib.ipv6_statistics, |
| 985 | sizeof(struct ipstats_mib)) < 0) | 982 | sizeof(struct ipstats_mib), |
| 983 | __alignof__(struct ipstats_mib)) < 0) | ||
| 986 | goto err_ip_mib; | 984 | goto err_ip_mib; |
| 987 | if (snmp_mib_init((void __percpu **)net->mib.icmpv6_statistics, | 985 | if (snmp_mib_init((void __percpu **)net->mib.icmpv6_statistics, |
| 988 | sizeof(struct icmpv6_mib)) < 0) | 986 | sizeof(struct icmpv6_mib), |
| 987 | __alignof__(struct icmpv6_mib)) < 0) | ||
| 989 | goto err_icmp_mib; | 988 | goto err_icmp_mib; |
| 990 | if (snmp_mib_init((void __percpu **)net->mib.icmpv6msg_statistics, | 989 | if (snmp_mib_init((void __percpu **)net->mib.icmpv6msg_statistics, |
| 991 | sizeof(struct icmpv6msg_mib)) < 0) | 990 | sizeof(struct icmpv6msg_mib), |
| 991 | __alignof__(struct icmpv6msg_mib)) < 0) | ||
| 992 | goto err_icmpmsg_mib; | 992 | goto err_icmpmsg_mib; |
| 993 | return 0; | 993 | return 0; |
| 994 | 994 | ||
