Commit a47f9f13 authored by Paul E. McKenney's avatar Paul E. McKenney
Browse files

rcu: Mark accesses to boost_starttime



The boost_starttime shared variable has conflicting unmarked C-language
accesses, which are dangerous at best.  This commit therefore adds
appropriate marking.  This was found by KCSAN.

Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
parent da123016
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -997,7 +997,7 @@ static int rcu_torture_boost(void *arg)
			goto checkwait;

		/* Wait for the next test interval. */
		oldstarttime = boost_starttime;
		oldstarttime = READ_ONCE(boost_starttime);
		while (time_before(jiffies, oldstarttime)) {
			schedule_timeout_interruptible(oldstarttime - jiffies);
			if (stutter_wait("rcu_torture_boost"))
@@ -1041,10 +1041,11 @@ static int rcu_torture_boost(void *arg)
		 * interval.  Besides, we are running at RT priority,
		 * so delays should be relatively rare.
		 */
		while (oldstarttime == boost_starttime && !kthread_should_stop()) {
		while (oldstarttime == READ_ONCE(boost_starttime) && !kthread_should_stop()) {
			if (mutex_trylock(&boost_mutex)) {
				if (oldstarttime == boost_starttime) {
					boost_starttime = jiffies + test_boost_interval * HZ;
					WRITE_ONCE(boost_starttime,
						   jiffies + test_boost_interval * HZ);
					n_rcu_torture_boosts++;
				}
				mutex_unlock(&boost_mutex);