aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/rcu/rcutorture.c
diff options
context:
space:
mode:
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>2015-05-14 18:42:40 -0400
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>2015-07-15 17:47:15 -0400
commit4444d852a99b8f0310f369da8473ec3639e380a7 (patch)
treecdc5c247b4782a57c7c041d66e9e7fb9984157ad /kernel/rcu/rcutorture.c
parentd9eba768839ac24e47606af36e50c14f10c2211c (diff)
rcutorture: Check nfakewriters parameter
Currently, a negative value for rcutorture.nfakewriters= can cause rcutorture to pass a negative size to the memory allocator, which is not really a particularly good thing to do. This commit therefore adds bounds checking to this parameter, so that values that are less than or equal to zero disable fake writing. Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Diffstat (limited to 'kernel/rcu/rcutorture.c')
-rw-r--r--kernel/rcu/rcutorture.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/kernel/rcu/rcutorture.c b/kernel/rcu/rcutorture.c
index 7e29a3266139..2cbe569ac5dd 100644
--- a/kernel/rcu/rcutorture.c
+++ b/kernel/rcu/rcutorture.c
@@ -1786,12 +1786,15 @@ rcu_torture_init(void)
1786 writer_task); 1786 writer_task);
1787 if (firsterr) 1787 if (firsterr)
1788 goto unwind; 1788 goto unwind;
1789 fakewriter_tasks = kzalloc(nfakewriters * sizeof(fakewriter_tasks[0]), 1789 if (nfakewriters > 0) {
1790 GFP_KERNEL); 1790 fakewriter_tasks = kzalloc(nfakewriters *
1791 if (fakewriter_tasks == NULL) { 1791 sizeof(fakewriter_tasks[0]),
1792 VERBOSE_TOROUT_ERRSTRING("out of memory"); 1792 GFP_KERNEL);
1793 firsterr = -ENOMEM; 1793 if (fakewriter_tasks == NULL) {
1794 goto unwind; 1794 VERBOSE_TOROUT_ERRSTRING("out of memory");
1795 firsterr = -ENOMEM;
1796 goto unwind;
1797 }
1795 } 1798 }
1796 for (i = 0; i < nfakewriters; i++) { 1799 for (i = 0; i < nfakewriters; i++) {
1797 firsterr = torture_create_kthread(rcu_torture_fakewriter, 1800 firsterr = torture_create_kthread(rcu_torture_fakewriter,