All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] locktorture: Fix Oops when reader/writer count is 0
@ 2017-10-10 15:52 Jeremy Linton
  2017-11-07 20:01 ` Jeremy Linton
  0 siblings, 1 reply; 13+ messages in thread
From: Jeremy Linton @ 2017-10-10 15:52 UTC (permalink / raw)
  To: linux-kernel; +Cc: peterz, mingo, Jeremy Linton

If nwriters_stress=0 is passed to the lock torture test
it will panic in:

Internal error: Oops: 96000005 [#1] SMP
...
[<ffff000000b7022c>] __torture_print_stats+0x2c/0x1c8 [locktorture]
[<ffff000000b7070c>] lock_torture_stats_print+0x74/0x120 [locktorture]
[<ffff000000b707f8>] lock_torture_stats+0x40/0xa8 [locktorture]
[<ffff0000080f3570>] kthread+0x108/0x138
[<ffff000008084b90>] ret_from_fork+0x10/0x18

This is caused by the deference to a null statp. Fix that by
checking the n_stress for non zero count before referencing statp.

Signed-off-by: Jeremy Linton <jeremy.linton@arm.com>
---
 kernel/locking/locktorture.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/kernel/locking/locktorture.c b/kernel/locking/locktorture.c
index f24582d4dad3..8229ba7147e5 100644
--- a/kernel/locking/locktorture.c
+++ b/kernel/locking/locktorture.c
@@ -716,10 +716,14 @@ static void __torture_print_stats(char *page,
 	bool fail = 0;
 	int i, n_stress;
 	long max = 0;
-	long min = statp[0].n_lock_acquired;
+	long min = 0;
 	long long sum = 0;
 
 	n_stress = write ? cxt.nrealwriters_stress : cxt.nrealreaders_stress;
+
+	if (n_stress)
+		min = statp[0].n_lock_acquired;
+
 	for (i = 0; i < n_stress; i++) {
 		if (statp[i].n_lock_fail)
 			fail = true;
-- 
2.13.5

^ permalink raw reply related	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2017-11-09 16:45 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-10-10 15:52 [PATCH] locktorture: Fix Oops when reader/writer count is 0 Jeremy Linton
2017-11-07 20:01 ` Jeremy Linton
2017-11-07 21:07   ` Peter Zijlstra
2017-11-07 22:15     ` Paul E. McKenney
2017-11-08  8:27       ` Peter Zijlstra
2017-11-08 14:17         ` Paul E. McKenney
2017-11-08 14:45       ` Davidlohr Bueso
2017-11-08 16:48         ` Paul E. McKenney
2017-11-08 16:57           ` Jeremy Linton
2017-11-08 17:44             ` Paul E. McKenney
2017-11-09 16:15               ` Jeremy Linton
2017-11-09 16:19           ` Davidlohr Bueso
2017-11-09 16:45             ` Paul E. McKenney

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.