android_kernel_xiaomi_sm8450/kernel/rcu
Paul E. McKenney 464d242868 rcutorture: Fix rcu_torture_fwd_cb_cr() data race
[ Upstream commit 6040072f4774a575fa67b912efe7722874be337b ]

On powerpc systems, spinlock acquisition does not order prior stores
against later loads.  This means that this statement:

	rfcp->rfc_next = NULL;

Can be reordered to follow this statement:

	WRITE_ONCE(*rfcpp, rfcp);

Which is then a data race with rcu_torture_fwd_prog_cr(), specifically,
this statement:

	rfcpn = READ_ONCE(rfcp->rfc_next)

KCSAN located this data race, which represents a real failure on powerpc.

Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Acked-by: Marco Elver <elver@google.com>
Cc: Andrey Konovalov <andreyknvl@gmail.com>
Cc: <kasan-dev@googlegroups.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-08-19 05:41:12 +02:00
..
Kconfig rcu: Make TASKS_RUDE_RCU select IRQ_WORK 2022-06-09 10:20:51 +02:00
Kconfig.debug Merge branch 'strictgp.2020.08.24a' into HEAD 2020-09-03 09:47:42 -07:00
Makefile rcuperf: Change rcuperf to rcuscale 2020-08-24 18:39:24 -07:00
rcu_segcblist.c rcu/segcblist: Prevent useless GP start if no CBs to accelerate 2020-09-03 09:39:59 -07:00
rcu_segcblist.h rcu: Remove kfree_rcu() special casing and lazy-callback handling 2020-01-24 10:24:31 -08:00
rcu.h srcu: Fix broken node geometry after early ssp init 2021-07-20 16:05:38 +02:00
rcuscale.c rcuscale: Move rcu_scale_writer() schedule_timeout_uninterruptible() to _idle() 2023-09-23 11:01:05 +02:00
rcutorture.c rcutorture: Fix rcu_torture_fwd_cb_cr() data race 2024-08-19 05:41:12 +02:00
refscale.c refscale: Fix uninitalized use of wait_queue_head_t 2023-09-19 12:20:07 +02:00
srcutiny.c srcu: Provide polling interfaces for Tiny SRCU grace periods 2021-09-03 10:09:30 +02:00
srcutree.c srcu: Provide polling interfaces for Tree SRCU grace periods 2021-09-03 10:09:29 +02:00
sync.c rcu/sync: Simplify the state machine 2019-05-28 09:05:23 -07:00
tasks.h rcu-tasks: Provide rcu_trace_implies_rcu_gp() 2024-03-26 18:21:45 -04:00
tiny.c rcu: Rename *_kfree_callback/*_kfree_rcu_offset/kfree_call_* 2020-06-29 11:59:25 -07:00
tree_exp.h rcu: Prevent expedited GP from enabling tick on offline CPU 2023-09-02 09:18:13 +02:00
tree_plugin.h rcu: Don't deboost before reporting expedited quiescent state 2022-03-28 09:57:10 +02:00
tree_stall.h rcu: Fix stall-warning deadlock due to non-release of rcu_node ->lock 2021-09-15 09:50:28 +02:00
tree.c rcu: kmemleak: Ignore kmemleak false positives when RCU-freeing objects 2023-11-28 16:54:57 +00:00
tree.h rcu: Prevent lockdep-RCU splats on lock acquisition/release 2023-01-14 10:16:29 +01:00
update.c rcu: Reject RCU_LOCKDEP_WARN() false positives 2021-07-20 16:05:38 +02:00