• Eric Dumazet's avatar
    tcp: md5: do not use alloc_percpu() · a388cd77
    Eric Dumazet authored
    [ Upstream commit 349ce993 ]
    
    percpu tcp_md5sig_pool contains memory blobs that ultimately
    go through sg_set_buf().
    
    -> sg_set_page(sg, virt_to_page(buf), buflen, offset_in_page(buf));
    
    This requires that whole area is in a physically contiguous portion
    of memory. And that @buf is not backed by vmalloc().
    
    Given that alloc_percpu() can use vmalloc() areas, this does not
    fit the requirements.
    
    Replace alloc_percpu() by a static DEFINE_PER_CPU() as tcp_md5sig_pool
    is small anyway, there is no gain to dynamically allocate it.
    Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
    Fixes: 765cf997 ("tcp: md5: remove one indirection level in tcp_md5sig_pool")
    Reported-by: default avatarCrestez Dan Leonard <cdleonard@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    a388cd77
tcp.c 81.4 KB