lkml.org 
[lkml]   [2017]   [Oct]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Subject[PATCH] locktorture: Fix Oops when reader/writer count is 0
Date
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
\
 
 \ /
  Last update: 2017-10-10 17:54    [W:0.073 / U:0.320 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site