]> Git Repo - J-linux.git/blobdiff - drivers/dma/dmatest.c
Merge tag 'dmaengine-5.8-rc1' of git://git.infradead.org/users/vkoul/slave-dma
[J-linux.git] / drivers / dma / dmatest.c
index 31235dc8c904873776ff1d8a26569b7b7daa4bfe..b175229a4b01d7992c2356d5134a754dd6bf98fe 100644 (file)
@@ -248,7 +248,7 @@ static bool is_threaded_test_run(struct dmatest_info *info)
                struct dmatest_thread *thread;
 
                list_for_each_entry(thread, &dtc->threads, node) {
-                       if (!thread->done)
+                       if (!thread->done && !thread->pending)
                                return true;
                }
        }
@@ -670,8 +670,8 @@ static int dmatest_func(void *data)
                flags = DMA_CTRL_ACK | DMA_PREP_INTERRUPT;
 
        ktime = ktime_get();
-       while (!kthread_should_stop()
-              && !(params->iterations && total_tests >= params->iterations)) {
+       while (!(kthread_should_stop() ||
+              (params->iterations && total_tests >= params->iterations))) {
                struct dma_async_tx_descriptor *tx = NULL;
                struct dmaengine_unmap_data *um;
                dma_addr_t *dsts;
@@ -1174,10 +1174,11 @@ static int dmatest_run_set(const char *val, const struct kernel_param *kp)
                mutex_unlock(&info->lock);
                return ret;
        } else if (dmatest_run) {
-               if (is_threaded_test_pending(info))
-                       start_threaded_tests(info);
-               else
-                       pr_info("Could not start test, no channels configured\n");
+               if (!is_threaded_test_pending(info)) {
+                       pr_info("No channels configured, continue with any\n");
+                       add_threaded_test(info);
+               }
+               start_threaded_tests(info);
        } else {
                stop_threaded_test(info);
        }
This page took 0.028795 seconds and 4 git commands to generate.