forked from luck/tmp_suning_uos_patched
locktorture: NULL cxt.lwsa and cxt.lrsa to allow bad-arg detection
Currently, lock_torture_cleanup() uses the values of cxt.lwsa and cxt.lrsa to detect bad parameters that prevented locktorture from initializing, let alone running. In this case, lock_torture_cleanup() does no cleanup aside from invoking torture_cleanup_begin() and torture_cleanup_end(), as required to permit future torture tests to run. However, this heuristic fails if the run with bad parameters was preceded by a previous run that actually ran: In this case, both cxt.lwsa and cxt.lrsa will remain non-zero, which means that the current lock_torture_cleanup() invocation will be unable to detect the fact that it should skip cleanup, which can result in charming outcomes such as double frees. This commit therefore NULLs out both cxt.lwsa and cxt.lrsa at the end of any run that actually ran. Signed-off-by: Paul E. McKenney <paulmck@linux.ibm.com> Cc: Davidlohr Bueso <dave@stgolabs.net> Cc: Josh Triplett <josh@joshtriplett.org>
This commit is contained in:
parent
ad092c0277
commit
a9d6938ddb
|
@ -829,7 +829,9 @@ static void lock_torture_cleanup(void)
|
||||||
"End of test: SUCCESS");
|
"End of test: SUCCESS");
|
||||||
|
|
||||||
kfree(cxt.lwsa);
|
kfree(cxt.lwsa);
|
||||||
|
cxt.lwsa = NULL;
|
||||||
kfree(cxt.lrsa);
|
kfree(cxt.lrsa);
|
||||||
|
cxt.lrsa = NULL;
|
||||||
|
|
||||||
end:
|
end:
|
||||||
torture_cleanup_end();
|
torture_cleanup_end();
|
||||||
|
|
Loading…
Reference in New Issue
Block a user