From 1bf4bd8cbfcfef62ed5ec2823f41f73e92a94976 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Thu, 16 Nov 2017 17:50:56 +0100 Subject: [PATCH] 4.14-stable patches added patches: dmaengine-dmatest-warn-user-when-dma-test-times-out.patch --- ...st-warn-user-when-dma-test-times-out.patch | 37 +++++++++++++++++++ queue-4.14/series | 1 + 2 files changed, 38 insertions(+) create mode 100644 queue-4.14/dmaengine-dmatest-warn-user-when-dma-test-times-out.patch diff --git a/queue-4.14/dmaengine-dmatest-warn-user-when-dma-test-times-out.patch b/queue-4.14/dmaengine-dmatest-warn-user-when-dma-test-times-out.patch new file mode 100644 index 00000000000..fcb42c5e590 --- /dev/null +++ b/queue-4.14/dmaengine-dmatest-warn-user-when-dma-test-times-out.patch @@ -0,0 +1,37 @@ +From a9df21e34b422f79d9a9fa5c3eff8c2a53491be6 Mon Sep 17 00:00:00 2001 +From: Adam Wallis +Date: Thu, 2 Nov 2017 08:53:30 -0400 +Subject: dmaengine: dmatest: warn user when dma test times out + +From: Adam Wallis + +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 +Signed-off-by: Vinod Koul +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/dma/dmatest.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/drivers/dma/dmatest.c ++++ b/drivers/dma/dmatest.c +@@ -702,6 +702,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); diff --git a/queue-4.14/series b/queue-4.14/series index 7b7e7c25907..dcf1c3d0933 100644 --- a/queue-4.14/series +++ b/queue-4.14/series @@ -1 +1,2 @@ edac-sb_edac-don-t-create-a-second-memory-controller-if-ha1-is-not-present.patch +dmaengine-dmatest-warn-user-when-dma-test-times-out.patch -- 2.47.2