Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a9df21e3 authored by Adam Wallis's avatar Adam Wallis Committed by Vinod Koul
Browse files

dmaengine: dmatest: warn user when dma test times out

Commit adfa543e ("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: default avatarAdam Wallis <awallis@codeaurora.org>
Signed-off-by: default avatarVinod Koul <vinod.koul@intel.com>
parent 2bd6bf03
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -702,6 +702,7 @@ static int dmatest_func(void *data)
			 * free it this time?" dancing.  For now, just
			 * free it this time?" dancing.  For now, just
			 * leave it dangling.
			 * leave it dangling.
			 */
			 */
			WARN(1, "dmatest: Kernel stack may be corrupted!!\n");
			dmaengine_unmap_put(um);
			dmaengine_unmap_put(um);
			result("test timed out", total_tests, src_off, dst_off,
			result("test timed out", total_tests, src_off, dst_off,
			       len, 0);
			       len, 0);