locktorture: Warn on individual lock_torture_init() error conditions
authorPaul E. McKenney <paulmck@kernel.org>
Thu, 5 Aug 2021 22:53:10 +0000 (15:53 -0700)
committerPaul E. McKenney <paulmck@kernel.org>
Mon, 13 Sep 2021 23:36:16 +0000 (16:36 -0700)
When running locktorture as a module, any lock_torture_init() issues will be
reflected in the error code from modprobe or insmod, as the case may be.
However, these error codes are not available when running locktorture
built-in, for example, when using the kvm.sh script.  This commit
therefore adds WARN_ON_ONCE() to allow distinguishing lock_torture_init()
errors when running locktorture built-in.

Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
kernel/locking/locktorture.c

index 7c5a4a0..397ac13 100644 (file)
@@ -1022,23 +1022,23 @@ static int __init lock_torture_init(void)
        if (onoff_interval > 0) {
                firsterr = torture_onoff_init(onoff_holdoff * HZ,
                                              onoff_interval * HZ, NULL);
-               if (firsterr)
+               if (torture_init_error(firsterr))
                        goto unwind;
        }
        if (shuffle_interval > 0) {
                firsterr = torture_shuffle_init(shuffle_interval);
-               if (firsterr)
+               if (torture_init_error(firsterr))
                        goto unwind;
        }
        if (shutdown_secs > 0) {
                firsterr = torture_shutdown_init(shutdown_secs,
                                                 lock_torture_cleanup);
-               if (firsterr)
+               if (torture_init_error(firsterr))
                        goto unwind;
        }
        if (stutter > 0) {
                firsterr = torture_stutter_init(stutter, stutter);
-               if (firsterr)
+               if (torture_init_error(firsterr))
                        goto unwind;
        }
 
@@ -1082,7 +1082,7 @@ static int __init lock_torture_init(void)
                /* Create writer. */
                firsterr = torture_create_kthread(lock_torture_writer, &cxt.lwsa[i],
                                                  writer_tasks[i]);
-               if (firsterr)
+               if (torture_init_error(firsterr))
                        goto unwind;
 
        create_reader:
@@ -1091,13 +1091,13 @@ static int __init lock_torture_init(void)
                /* Create reader. */
                firsterr = torture_create_kthread(lock_torture_reader, &cxt.lrsa[j],
                                                  reader_tasks[j]);
-               if (firsterr)
+               if (torture_init_error(firsterr))
                        goto unwind;
        }
        if (stat_interval > 0) {
                firsterr = torture_create_kthread(lock_torture_stats, NULL,
                                                  stats_task);
-               if (firsterr)
+               if (torture_init_error(firsterr))
                        goto unwind;
        }
        torture_init_end();