Skip to content
  • Jozsef Kadlecsik's avatar
    netfilter: ctnetlink: fix soft lockup when netlink adds new entries (v2) · 7d367e06
    Jozsef Kadlecsik authored
    
    
    Marcell Zambo and Janos Farago noticed and reported that when
    new conntrack entries are added via netlink and the conntrack table
    gets full, soft lockup happens. This is because the nf_conntrack_lock
    is held while nf_conntrack_alloc is called, which is in turn wants
    to lock nf_conntrack_lock while evicting entries from the full table.
    
    The patch fixes the soft lockup with limiting the holding of the
    nf_conntrack_lock to the minimum, where it's absolutely required.
    It required to extend (and thus change) nf_conntrack_hash_insert
    so that it makes sure conntrack and ctnetlink do not add the same entry
    twice to the conntrack table.
    
    Signed-off-by: default avatarJozsef Kadlecsik <kadlec@blackhole.kfki.hu>
    Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
    7d367e06