rcu: handle unstable rdp in rcu_read_unlock_strict()
[ Upstream commit fcf0e25a ] rcu_read_unlock_strict() can be called with preemption enabled which can make for an unstable rdp and a racy norm value. Fix this by dropping the preempt-count in __rcu_read_unlock() after the call to rcu_read_unlock_strict(), adjusting the preempt-count check appropriately. Suggested-by:Frederic Weisbecker <frederic@kernel.org> Signed-off-by:
Ankur Arora <ankur.a.arora@oracle.com> Reviewed-by:
Frederic Weisbecker <frederic@kernel.org> Signed-off-by:
Paul E. McKenney <paulmck@kernel.org> Signed-off-by:
Boqun Feng <boqun.feng@gmail.com> Signed-off-by:
Sasha Levin <sashal@kernel.org>
Loading