sctp: keep fragmentation point aligned to word size
authorMarcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Sat, 19 Mar 2016 15:17:43 +0000 (12:17 -0300)
committerDavid S. Miller <davem@davemloft.net>
Sun, 20 Mar 2016 20:31:12 +0000 (16:31 -0400)
If the user supply a different fragmentation point or if there is a
network header that cause it to not be aligned, force it to be aligned.

Fragmentation point at a value that is not aligned is not optimal.  It
causes extra padding to be used and has just no pros.

v2:
 - Make use of the new WORD_TRUNC macro

Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/sctp/sctp.h

index ad2136caa7d65fdc0f51e4c7ad3a526c2f39660d..65521cfdcadeee35d61f280165a387cc2164ab6d 100644 (file)
@@ -431,7 +431,7 @@ static inline int sctp_frag_point(const struct sctp_association *asoc, int pmtu)
        if (asoc->user_frag)
                frag = min_t(int, frag, asoc->user_frag);
 
-       frag = min_t(int, frag, SCTP_MAX_CHUNK_LEN);
+       frag = WORD_TRUNC(min_t(int, frag, SCTP_MAX_CHUNK_LEN));
 
        return frag;
 }