• Michal Kubecek's avatar
    net: disable fragment reassembly if high_thresh is set to zero · 5a0b77dc
    Michal Kubecek authored
    commit 30759219 upstream.
    
    Before commit 6d7b857d ("net: use lib/percpu_counter API for
    fragmentation mem accounting"), setting high threshold to 0 prevented
    fragment reassembly as first fragment would be always evicted before
    second could be added to the queue. While inefficient, some users
    apparently relied on it.
    
    Since the commit mentioned above, a percpu counter is used for
    reassembly memory accounting and high batch size avoids taking slow path
    in most common scenarios. As a result, a whole full sized packet can be
    reassembled without the percpu counter's main counter changing its
    value so that even with high_thresh set to 0, fragmented packets can be
    still reassembled and processed.
    
    Add explicit checks preventing reassembly if high threshold is zero.
    
    [mk] backport to 3.12
    Signed-off-by: default avatarMichal Kubecek <mkubecek@suse.cz>
    Signed-off-by: default avatarJiri Slaby <jslaby@suse.cz>
    Signed-off-by: default avatarWilly Tarreau <w@1wt.eu>
    5a0b77dc
reassembly.c 19.2 KB