OSDN Git Service

tcp: Allow full IP tos/IPv6 tclass to be reflected in L3 header
[uclinux-h8/linux.git] / net / ipv6 / tcp_ipv6.c
index 8db59f4..3d49e8d 100644 (file)
@@ -530,12 +530,12 @@ static int tcp_v6_send_synack(const struct sock *sk, struct dst_entry *dst,
                rcu_read_lock();
                opt = ireq->ipv6_opt;
                tclass = sock_net(sk)->ipv4.sysctl_tcp_reflect_tos ?
-                               tcp_rsk(req)->syn_tos : np->tclass;
+                               tcp_rsk(req)->syn_tos & ~INET_ECN_MASK :
+                               np->tclass;
                if (!opt)
                        opt = rcu_dereference(np->opt);
                err = ip6_xmit(sk, skb, fl6, sk->sk_mark, opt,
-                              tclass & ~INET_ECN_MASK,
-                              sk->sk_priority);
+                              tclass, sk->sk_priority);
                rcu_read_unlock();
                err = net_xmit_eval(err);
        }