summaryrefslogtreecommitdiffstats
path: root/include/linux/torture.h
diff options
context:
space:
mode:
authorDavidlohr Bueso <dave@stgolabs.net>2014-09-11 20:40:21 -0700
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>2014-09-16 13:41:06 -0700
commitd36a7a0d5e8b5bff1671723d733eb61621b0cee4 (patch)
tree17cbd1c2542a4b587890a593446757606a4a7834 /include/linux/torture.h
parent1e6757a92189278c484799ea98fc69bdc528940e (diff)
downloadop-kernel-dev-d36a7a0d5e8b5bff1671723d733eb61621b0cee4.zip
op-kernel-dev-d36a7a0d5e8b5bff1671723d733eb61621b0cee4.tar.gz
torture: Address race in module cleanup
When performing module cleanups by calling torture_cleanup() the 'torture_type' string in nullified However, callers are not necessarily done, and might still need to reference the variable. This impacts both rcutorture and locktorture, causing printing things like: [ 94.226618] (null)-torture: Stopping lock_torture_writer task [ 94.226624] (null)-torture: Stopping lock_torture_stats task Thus delay this operation until the very end of the cleanup process. The consequence (which shouldn't matter for this kid of program) is, of course, that we delay the window between rmmod and modprobing, for instance in module_torture_begin(). Signed-off-by: Davidlohr Bueso <dbueso@suse.de> Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Diffstat (limited to 'include/linux/torture.h')
-rw-r--r--include/linux/torture.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/include/linux/torture.h b/include/linux/torture.h
index fec46f8..7759fc3 100644
--- a/include/linux/torture.h
+++ b/include/linux/torture.h
@@ -77,7 +77,8 @@ int torture_stutter_init(int s);
/* Initialization and cleanup. */
bool torture_init_begin(char *ttype, bool v, int *runnable);
void torture_init_end(void);
-bool torture_cleanup(void);
+bool torture_cleanup_begin(void);
+void torture_cleanup_end(void);
bool torture_must_stop(void);
bool torture_must_stop_irq(void);
void torture_kthread_stopping(char *title);
OpenPOWER on IntegriCloud