• Ahmed S. Darwish's avatar
    net: xfrm: Localize sequence counter per network namespace · e88add19
    Ahmed S. Darwish authored
    A sequence counter write section must be serialized or its internal
    state can get corrupted. The "xfrm_state_hash_generation" seqcount is
    global, but its write serialization lock (net->xfrm.xfrm_state_lock) is
    instantiated per network namespace. The write protection is thus
    insufficient.
    
    To provide full protection, localize the sequence counter per network
    namespace instead. This should be safe as both the seqcount read and
    write sections access data exclusively within the network namespace. It
    also lays the foundation for transforming "xfrm_state_hash_generation"
    data type from seqcount_t to seqcount_LOCKNAME_t in further commits.
    
    Fixes: b65e3d7b ("xfrm: state: add sequence count to detect hash resizes")
    Signed-off-by: default avatarAhmed S. Darwish <a.darwish@linutronix.de>
    Signed-off-by: default avatarSteffen Klassert <steffen.klassert@secunet.com>
    e88add19
xfrm_state.c 66.5 KB