summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Wallis <awallis@codeaurora.org>2017-11-02 15:53:30 +0300
committerBen Hutchings <ben@decadent.org.uk>2018-03-03 18:51:51 +0300
commit3ebd68f499f6131884e2cf9c0e88aebf2af07e26 (patch)
tree97f10044fd7f5898e416547d013b06b9d20a7edc
parent532980753bb7d931b972d0b9bf07a1e3a77df7e7 (diff)
downloadlinux-3ebd68f499f6131884e2cf9c0e88aebf2af07e26.tar.xz
dmaengine: dmatest: warn user when dma test times out
commit a9df21e34b422f79d9a9fa5c3eff8c2a53491be6 upstream. Commit adfa543e7314 ("dmatest: don't use set_freezable_with_signal()") introduced a bug (that is in fact documented by the patch commit text) that leaves behind a dangling pointer. Since the done_wait structure is allocated on the stack, future invocations to the DMATEST can produce undesirable results (e.g., corrupted spinlocks). Ideally, this would be cleaned up in the thread handler, but at the very least, the kernel is left in a very precarious scenario that can lead to some long debug sessions when the crash comes later. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=197605 Signed-off-by: Adam Wallis <awallis@codeaurora.org> Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
-rw-r--r--drivers/dma/dmatest.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/dma/dmatest.c b/drivers/dma/dmatest.c
index e27cec25c59e..bcd404f0774b 100644
--- a/drivers/dma/dmatest.c
+++ b/drivers/dma/dmatest.c
@@ -633,6 +633,7 @@ static int dmatest_func(void *data)
* free it this time?" dancing. For now, just
* leave it dangling.
*/
+ WARN(1, "dmatest: Kernel stack may be corrupted!!\n");
dmaengine_unmap_put(um);
result("test timed out", total_tests, src_off, dst_off,
len, 0);