From: Dave K. <dav...@or...> - 2013-08-28 13:07:34
|
Make map_address a volatile pointer so that it is dereferenced in read_mem() after read_lock is set. Also read_lock must protect the verbose printf that reads from map_address as well. Signed-off-by: Dave Kleikamp <dav...@or...> diff --git a/testcases/kernel/mem/mtest06/mmap1.c b/testcases/kernel/mem/mtest06/mmap1.c index 7c80bb4..cd1127f 100644 --- a/testcases/kernel/mem/mtest06/mmap1.c +++ b/testcases/kernel/mem/mtest06/mmap1.c @@ -62,7 +62,7 @@ } while (0) static int verbose_print = 0; -static char *map_address; +static char *volatile map_address; static jmp_buf jmpbuf; static volatile char read_lock = 0; @@ -228,11 +228,13 @@ void *read_mem(void *ptr) tst_resm(TINFO, "page fault occurred due to " "a read after an unmap"); } else { - if (verbose_print) + if (verbose_print) { + read_lock = 1; tst_resm(TINFO, "read_mem(): content of memory: %s", (char *)map_address); - + read_lock = 0; + } for (j = 0; j < args[1]; j++) { read_lock = 1; if (map_address[j] != 'a') |