• Herbert Xu's avatar
    TCP: Fix TCP header misalignment · 593b85ef
    Herbert Xu authored
    [TCP]: Fix TCP header misalignment
    
    [ Upstream commit: 21df56c6 ]
    
    Indeed my previous change to alloc_pskb has made it possible
    for the TCP header to be misaligned iff the MTU is not a multiple
    of 4 (and less than a page).  So I suspect the optimised IPsec
    MTU calculation is giving you just such an MTU :)
    
    This patch fixes it by changing alloc_pskb to make sure that
    the size is at least 32-bit aligned.  This does not cause the
    problem fixed by the previous patch because max_header is always
    32-bit aligned which means that in the SG/NOTSO case this will
    be a no-op.
    
    I thought about putting this in the callers but all the current
    callers are from TCP.  If and when we get a non-TCP caller we
    can always create a TCP wrapper for this function and move the
    alignment over there.
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    593b85ef
sock.h 39.2 KB