linux/net/sctp
Marcelo Ricardo Leitner 47d0dbf7b9 sctp: fix identification of new acks for SFR-CACC
commit 51446780fc upstream.

It's currently written as:

if (!tchunk->tsn_gap_acked) {   [1]
	tchunk->tsn_gap_acked = 1;
	...
}

if (TSN_lte(tsn, sack_ctsn)) {
	if (!tchunk->tsn_gap_acked) {
		/* SFR-CACC processing */
		...
	}
}

Which causes the SFR-CACC processing on ack reception to never process,
as tchunk->tsn_gap_acked is always true by then. Block [1] was
moved to that position by the commit marked below.

This patch fixes it by doing SFR-CACC processing earlier, before
tsn_gap_acked is set to true.

Fixes: 31b02e1549 ("sctp: Failover transmitted list on transport delete")
Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Reviewed-by: Xin Long <lucien.xin@gmail.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
[bwh: Backported to 3.16: adjust context]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
History 2018-11-20 18:04:50 +00:00
..
associola.c sctp: fix the transports round robin issue when init is retransmitted 2016-05-01 00:05:58 +02:00
auth.c sctp: translate host order to network order when setting a hmacid 2015-12-14 10:17:13 +00:00
bind_addr.c sctp: Fix FSF address in file headers 2013-12-06 12:37:56 -05:00
chunk.c sctp: fix checkpatch errors with space required or prohibited 2013-12-26 13:47:47 -05:00
command.c sctp: Fix FSF address in file headers 2013-12-06 12:37:56 -05:00
debug.c sctp: Fix FSF address in file headers 2013-12-06 12:37:56 -05:00
endpointola.c net: sctp: migrate most recently used transport to ktime 2014-06-11 12:23:17 -07:00
input.c sctp: add the missing sock_owned_by_user check in sctp_icmp_redirect 2018-01-01 20:51:57 +00:00
inqueue.c sctp: fix the issue that the cookie-ack with auth can't get processed 2018-10-21 08:45:51 +01:00
ipv6.c sctp: handle two v4 addrs comparison in sctp_inet6_cmp_addr 2018-10-21 08:45:48 +01:00
Kconfig net: sctp: get rid of SCTP_DBG_TSNS entirely 2013-07-02 00:08:03 -07:00
Makefile sctp: implement sctp association probing module 2010-04-30 22:41:09 -04:00
objcnt.c sctp: fix checkpatch errors with (foo*)|foo * bar|foo* bar 2013-12-26 13:47:47 -05:00
output.c sctp: Fix race between OOTB responce and route removal 2015-07-06 10:40:21 +01:00
outqueue.c sctp: fix identification of new acks for SFR-CACC 2018-11-20 18:04:50 +00:00
primitive.c sctp: Fix FSF address in file headers 2013-12-06 12:37:56 -05:00
probe.c sctp: loading sctp when load sctp_probe 2013-12-16 20:04:27 -05:00
proc.c snmp: fix some left over of snmp stats 2014-05-14 15:33:47 -04:00
protocol.c sctp: Fixup v4mapped behaviour to comply with Sock API 2018-02-13 18:42:22 +00:00
sm_make_chunk.c sctp: verify size of a new chunk in _sctp_make_chunk() 2018-06-16 22:21:32 +01:00
sm_sideeffect.c sctp: fix a type cast warnings that causes a_rwnd gets the wrong value 2018-01-01 20:52:00 +00:00
sm_statefuns.c sctp: validate chunk len before actually using it 2017-02-23 03:54:47 +00:00
sm_statetable.c sctp: fix checkpatch errors with indent 2013-12-26 13:47:48 -05:00
socket.c sctp: do not allow the v4 socket to bind a v4mapped v6 address 2018-03-03 15:52:24 +00:00
ssnmap.c sctp: Fix FSF address in file headers 2013-12-06 12:37:56 -05:00
sysctl.c net: sctp: prevent writes to cookie_hmac_alg from accessing invalid memory 2016-01-28 10:41:46 +00:00
transport.c sctp: Fixup v4mapped behaviour to comply with Sock API 2018-02-13 18:42:22 +00:00
tsnmap.c sctp: Fix FSF address in file headers 2013-12-06 12:37:56 -05:00
ulpevent.c sctp: Fixup v4mapped behaviour to comply with Sock API 2018-02-13 18:42:22 +00:00
ulpqueue.c sctp: add support for busy polling to sctp protocol 2014-04-20 18:18:55 -04:00