dmaengine: dmatest: warn user when dma test times out
PATCH v2 1/1 dmaengine: dmatest: warn user when dma test times out
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.
This bug has also been captured at
https://bugzilla.kernel.org/show_bug.cgi?id=197605
---
changes from v1: No longer using BUG at request of Vinod
drivers/dma/dmatest.c | 1 + 1 file changed, 1 insertion(+)
drivers/dma/dmatest.c +1 -0
@@ -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 );
Signature · 3 lines
Qualcomm Datacenter Technologies as an affiliate of Qualcomm Technologies, Inc. Qualcomm Technologies, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project.
PATCH v2 1/1 dmaengine: dmatest: warn user when dma test times out
Vinod
Did you have any other feedback on the patch or the wording of the warning?
Thanks
Signature · 4 lines
Adam Wallis Qualcomm Datacenter Technologies as an affiliate of Qualcomm Technologies, Inc. Qualcomm Technologies, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project.
PATCH v2 1/1 dmaengine: dmatest: warn user when dma test times out
In reply to Adam WallisQuoted 11 lines · Adam Wallis
Commit
adfa543e7314("dmatest: don't useset_freezable_with_signal()") introduced a bug (that is in fact documented by the patch commit text) that leaves behind a dangling pointer. Since thedone_waitstructure 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.This bug has also been captured at
https://bugzilla.kernel.org/show_bug.cgi?id=197605
I have made it
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=197605
Quoted 1 line
Signed-off-by Adam Wallis <[email protected]>
and applied. Thanks
Signature · 1 line
~Vinod