aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/torture.h
diff options
context:
space:
mode:
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>2014-02-03 11:52:27 -0800
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>2014-02-23 09:03:24 -0800
commit47cf29b9e721967aac95ebda9e50408219755852 (patch)
tree9f35fcc13e7411c277094b9740d94fab14323a8b /include/linux/torture.h
parentrcutorture: Fix missing-return bug in rcu_torture_barrier_init() (diff)
downloadlinux-dev-47cf29b9e721967aac95ebda9e50408219755852.tar.xz
linux-dev-47cf29b9e721967aac95ebda9e50408219755852.zip
rcutorture: Abstract torture_create_kthread()
Creation of kthreads is not RCU-specific, so this commit abstracts out torture_create_kthread(), saving a few tens of lines of code in the process. This change requires modifying VERBOSE_TOROUT_ERRSTRING() to take a non-const string, so that _torture_create_kthread() can avoid an open-coded substitute. Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Diffstat (limited to 'include/linux/torture.h')
-rw-r--r--include/linux/torture.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/include/linux/torture.h b/include/linux/torture.h
index 2ea11094daf6..430cc3008628 100644
--- a/include/linux/torture.h
+++ b/include/linux/torture.h
@@ -47,7 +47,7 @@
#define VERBOSE_TOROUT_STRING(s) \
do { if (verbose) pr_alert("%s" TORTURE_FLAG " %s\n", torture_type, s); } while (0)
#define VERBOSE_TOROUT_ERRSTRING(s) \
- do { if (verbose) pr_alert("%s" TORTURE_FLAG "!!! " s "\n", torture_type); } while (0)
+ do { if (verbose) pr_alert("%s" TORTURE_FLAG "!!! %s\n", torture_type, s); } while (0)
/* Definitions for a non-string torture-test module parameter. */
#define torture_parm(type, name, init, msg) \
@@ -89,5 +89,11 @@ bool torture_cleanup(void);
bool torture_must_stop(void);
bool torture_must_stop_irq(void);
void torture_kthread_stopping(char *title);
+int _torture_create_kthread(int (*fn)(void *arg), void *arg, char *s, char *m,
+ char *f, struct task_struct **tp);
+
+#define torture_create_kthread(n, arg, tp) \
+ _torture_create_kthread(n, (arg), #n, "Creating " #n " task", \
+ "Failed to create " #n, &(tp))
#endif /* __LINUX_TORTURE_H */