]> git.baikalelectronics.ru Git - kernel.git/commit
sctp: fix the handling of SACK Gap Ack blocks
authorMarcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Tue, 20 Sep 2016 21:19:13 +0000 (18:19 -0300)
committerDavid S. Miller <davem@davemloft.net>
Fri, 23 Sep 2016 10:54:58 +0000 (06:54 -0400)
commitb0ce72bfa29b196360e8b17caff3553f0a6d8c66
treea518d2ceda19c5548f255cdd1b8d590b789f18b4
parent255d6175d26a66c89e9d7d5f64aa362ec6592b52
sctp: fix the handling of SACK Gap Ack blocks

sctp_acked() is using 32bit arithmetics on 16bits vars, via TSN_lte()
macros, which is weird and confusing.

Once the offset to ctsn is calculated, all wrapping is already handled
and thus to verify the Gap Ack blocks we can just use pure
less/big-or-equal than checks.

Also, rename gap variable to tsn_offset, so it's more meaningful, as
it doesn't point to any gap at all.

Even so, I don't think this discrepancy resulted in any practical bug.

This patch is a preparation for the next one, which will introduce
typecheck() for TSN_lte() macros and would cause a compile error here.

Suggested-by: David Laight <David.Laight@ACULAB.COM>
Reported-by: David Laight <David.Laight@ACULAB.COM>
Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sctp/outqueue.c