[PATCH] dmaengine/dmatest: terminate transfers only in case of errors

From: Viresh Kumar
Date: Fri Nov 09 2012 - 10:26:27 EST


From: Shiraz Hashim <shiraz.hashim@xxxxxx>

dmatest erroneously terminated transfers in normal cases also leading to
test failures for multiple threads over a channel. Fix this and
terminate transfers only in case of errors.

Signed-off-by: Shiraz Hashim <shiraz.hashim@xxxxxx>
Signed-off-by: Deepak Sikri <deepak.sikri@xxxxxx>
---
drivers/dma/dmatest.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/dma/dmatest.c b/drivers/dma/dmatest.c
index 8f130d4e..ce58b8e 100644
--- a/drivers/dma/dmatest.c
+++ b/drivers/dma/dmatest.c
@@ -509,7 +509,9 @@ err_srcs:
thread_name, total_tests, failed_tests, ret);

/* terminate all transfers on specified channels */
- chan->device->device_control(chan, DMA_TERMINATE_ALL, 0);
+ if (ret)
+ chan->device->device_control(chan, DMA_TERMINATE_ALL, 0);
+
if (iterations > 0)
while (!kthread_should_stop()) {
DECLARE_WAIT_QUEUE_HEAD_ONSTACK(wait_dmatest_exit);
--
1.7.12.rc2.18.g61b472e

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/