-
由 Ahmed S. Darwish 提交于
stable inclusion from stable-5.10.30 commit 0224432a8fc183b88dcaade4d7e25d455b72f528 bugzilla: 51791 -------------------------------- [ Upstream commit e88add19 ] 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: NAhmed S. Darwish <a.darwish@linutronix.de> Signed-off-by: NSteffen Klassert <steffen.klassert@secunet.com> Signed-off-by: NSasha Levin <sashal@kernel.org> Signed-off-by: NChen Jun <chenjun102@huawei.com> Acked-by: N Weilong Chen <chenweilong@huawei.com> Signed-off-by: NZheng Zengkai <zhengzengkai@huawei.com>
38b018d8