]> Pileus Git - ~andy/linux/blobdiff - net/ipv6/af_inet6.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
[~andy/linux] / net / ipv6 / af_inet6.c
index 4fbdb7046d286cf64f60c61e3ae87ba657f042a0..d935889f1008ae93ff1efe52badeedf41352f257 100644 (file)
@@ -213,7 +213,7 @@ lookup_protocol:
        inet->mc_list   = NULL;
        inet->rcv_tos   = 0;
 
-       if (ipv4_config.no_pmtu_disc)
+       if (net->ipv4.sysctl_ip_no_pmtu_disc)
                inet->pmtudisc = IP_PMTUDISC_DONT;
        else
                inet->pmtudisc = IP_PMTUDISC_WANT;
@@ -661,7 +661,7 @@ int inet6_sk_rebuild_header(struct sock *sk)
 
                final_p = fl6_update_dst(&fl6, np->opt, &final);
 
-               dst = ip6_dst_lookup_flow(sk, &fl6, final_p, false);
+               dst = ip6_dst_lookup_flow(sk, &fl6, final_p);
                if (IS_ERR(dst)) {
                        sk->sk_route_caps = 0;
                        sk->sk_err_soft = -PTR_ERR(dst);
@@ -683,8 +683,7 @@ bool ipv6_opt_accepted(const struct sock *sk, const struct sk_buff *skb)
        if (np->rxopt.all) {
                if ((opt->hop && (np->rxopt.bits.hopopts ||
                                  np->rxopt.bits.ohopopts)) ||
-                   ((IPV6_FLOWINFO_MASK &
-                     *(__be32 *)skb_network_header(skb)) &&
+                   (ip6_flowinfo((struct ipv6hdr *) skb_network_header(skb)) &&
                     np->rxopt.bits.rxflow) ||
                    (opt->srcrt && (np->rxopt.bits.srcrt ||
                     np->rxopt.bits.osrcrt)) ||
@@ -776,6 +775,7 @@ static int __net_init inet6_net_init(struct net *net)
 
        net->ipv6.sysctl.bindv6only = 0;
        net->ipv6.sysctl.icmpv6_time = 1*HZ;
+       net->ipv6.sysctl.flowlabel_consistency = 1;
        atomic_set(&net->ipv6.rt_genid, 0);
 
        err = ipv6_init_mibs(net);