Skip to contentSkip to conversation

Patch "tcp/ipv6: fix flow label setting in TIME_WAIT state" has been added to the 4.0-stable tree

PATCH [email protected] 1 participant 1 message Jun 13, 2015

Subsystems (3)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

tcp/ipv6: fix flow label setting in TIME_WAIT state

to the 4.0-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
tcp-ipv6-fix-flow-label-setting-in-time_wait-state.patch
and it can be found in the queue-4.0 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From foo@baz Sat Jun 13 09:48:35 PDT 2015

From: Florent Fourcot <[email protected]>
Date: Sat, 16 May 2015 00:24:59 +0200
Subject: tcp/ipv6: fix flow label setting in TIME_WAIT state

From: Florent Fourcot <[email protected]>

[ Upstream commit 21858cd02dabcf290564cbf4769b101eba54d7bb ]

commit 1d13a96c74fc ("ipv6: tcp: fix flowlabel value in ACK messages send from TIME_WAIT") added the flow label in the last TCP packets. Unfortunately, it was not casted properly.

This patch replace the buggy shift with be32_to_cpu/cpu_to_be32.

Fixes 1d13a96c74fc ("ipv6: tcp: fix flowlabel value in ACK messages")
---
 net/ipv4/tcp_minisocks.c |    2 +-
 net/ipv6/tcp_ipv6.c      |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
net/ipv4/tcp_minisocks.c +1 -1
@@ -316,7 +316,7 @@ void tcp_time_wait(struct sock *sk, int
 			tw->tw_v6_daddr = sk->sk_v6_daddr;
 			tw->tw_v6_rcv_saddr = sk->sk_v6_rcv_saddr;
 			tw->tw_tclass = np->tclass;
-			tw->tw_flowlabel = np->flow_label >> 12;
+			tw->tw_flowlabel = be32_to_cpu(np->flow_label & IPV6_FLOWLABEL_MASK);
 			tw->tw_ipv6only = sk->sk_ipv6only;
 		}
 #endif
net/ipv6/tcp_ipv6.c +1 -1
@@ -975,7 +975,7 @@ static void tcp_v6_timewait_ack(struct s
 			tcptw->tw_rcv_wnd >> tw->tw_rcv_wscale,
 			tcp_time_stamp + tcptw->tw_ts_offset,
 			tcptw->tw_ts_recent, tw->tw_bound_dev_if, tcp_twsk_md5_key(tcptw),
-			tw->tw_tclass, (tw->tw_flowlabel << 12));
+			tw->tw_tclass, cpu_to_be32(tw->tw_flowlabel));
 
 	inet_twsk_put(tw);
 }

Patches currently in stable-queue which might be from [email protected] are

queue-4.0/tcp-ipv6-fix-flow-label-setting-in-time_wait-state.patch