rcu: Convert ACCESS_ONCE() to READ_ONCE() and WRITE_ONCE()
This commit moves from the old ACCESS_ONCE() API to the new READ_ONCE() and WRITE_ONCE() APIs. Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> [ paulmck: Updated to include kernel/torture.c as suggested by Jason Low. ]
This commit is contained in:
@@ -409,7 +409,7 @@ static void (*torture_shutdown_hook)(void);
|
||||
*/
|
||||
void torture_shutdown_absorb(const char *title)
|
||||
{
|
||||
while (ACCESS_ONCE(fullstop) == FULLSTOP_SHUTDOWN) {
|
||||
while (READ_ONCE(fullstop) == FULLSTOP_SHUTDOWN) {
|
||||
pr_notice("torture thread %s parking due to system shutdown\n",
|
||||
title);
|
||||
schedule_timeout_uninterruptible(MAX_SCHEDULE_TIMEOUT);
|
||||
@@ -480,9 +480,9 @@ static int torture_shutdown_notify(struct notifier_block *unused1,
|
||||
unsigned long unused2, void *unused3)
|
||||
{
|
||||
mutex_lock(&fullstop_mutex);
|
||||
if (ACCESS_ONCE(fullstop) == FULLSTOP_DONTSTOP) {
|
||||
if (READ_ONCE(fullstop) == FULLSTOP_DONTSTOP) {
|
||||
VERBOSE_TOROUT_STRING("Unscheduled system shutdown detected");
|
||||
ACCESS_ONCE(fullstop) = FULLSTOP_SHUTDOWN;
|
||||
WRITE_ONCE(fullstop, FULLSTOP_SHUTDOWN);
|
||||
} else {
|
||||
pr_warn("Concurrent rmmod and shutdown illegal!\n");
|
||||
}
|
||||
@@ -523,13 +523,13 @@ static int stutter;
|
||||
*/
|
||||
void stutter_wait(const char *title)
|
||||
{
|
||||
while (ACCESS_ONCE(stutter_pause_test) ||
|
||||
(torture_runnable && !ACCESS_ONCE(*torture_runnable))) {
|
||||
while (READ_ONCE(stutter_pause_test) ||
|
||||
(torture_runnable && !READ_ONCE(*torture_runnable))) {
|
||||
if (stutter_pause_test)
|
||||
if (ACCESS_ONCE(stutter_pause_test) == 1)
|
||||
if (READ_ONCE(stutter_pause_test) == 1)
|
||||
schedule_timeout_interruptible(1);
|
||||
else
|
||||
while (ACCESS_ONCE(stutter_pause_test))
|
||||
while (READ_ONCE(stutter_pause_test))
|
||||
cond_resched();
|
||||
else
|
||||
schedule_timeout_interruptible(round_jiffies_relative(HZ));
|
||||
@@ -549,14 +549,14 @@ static int torture_stutter(void *arg)
|
||||
if (!torture_must_stop()) {
|
||||
if (stutter > 1) {
|
||||
schedule_timeout_interruptible(stutter - 1);
|
||||
ACCESS_ONCE(stutter_pause_test) = 2;
|
||||
WRITE_ONCE(stutter_pause_test, 2);
|
||||
}
|
||||
schedule_timeout_interruptible(1);
|
||||
ACCESS_ONCE(stutter_pause_test) = 1;
|
||||
WRITE_ONCE(stutter_pause_test, 1);
|
||||
}
|
||||
if (!torture_must_stop())
|
||||
schedule_timeout_interruptible(stutter);
|
||||
ACCESS_ONCE(stutter_pause_test) = 0;
|
||||
WRITE_ONCE(stutter_pause_test, 0);
|
||||
torture_shutdown_absorb("torture_stutter");
|
||||
} while (!torture_must_stop());
|
||||
torture_kthread_stopping("torture_stutter");
|
||||
@@ -642,13 +642,13 @@ EXPORT_SYMBOL_GPL(torture_init_end);
|
||||
bool torture_cleanup_begin(void)
|
||||
{
|
||||
mutex_lock(&fullstop_mutex);
|
||||
if (ACCESS_ONCE(fullstop) == FULLSTOP_SHUTDOWN) {
|
||||
if (READ_ONCE(fullstop) == FULLSTOP_SHUTDOWN) {
|
||||
pr_warn("Concurrent rmmod and shutdown illegal!\n");
|
||||
mutex_unlock(&fullstop_mutex);
|
||||
schedule_timeout_uninterruptible(10);
|
||||
return true;
|
||||
}
|
||||
ACCESS_ONCE(fullstop) = FULLSTOP_RMMOD;
|
||||
WRITE_ONCE(fullstop, FULLSTOP_RMMOD);
|
||||
mutex_unlock(&fullstop_mutex);
|
||||
torture_shutdown_cleanup();
|
||||
torture_shuffle_cleanup();
|
||||
@@ -681,7 +681,7 @@ EXPORT_SYMBOL_GPL(torture_must_stop);
|
||||
*/
|
||||
bool torture_must_stop_irq(void)
|
||||
{
|
||||
return ACCESS_ONCE(fullstop) != FULLSTOP_DONTSTOP;
|
||||
return READ_ONCE(fullstop) != FULLSTOP_DONTSTOP;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(torture_must_stop_irq);
|
||||
|
||||
|
Fai riferimento in un nuovo problema
Block a user