]> git.proxmox.com Git - mirror_ubuntu-disco-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)
commita3007446e53af07c53bdb4cabad7b3ea60859da4
treea518d2ceda19c5548f255cdd1b8d590b789f18b4
parent21641c2e1ffd0b504610a33beaeab8fcc5140677
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