Messages in this thread Patch in this message | | | From | "Hook, Gary" <> | Subject | [PATCH] dmaengine: dmatest: timeout value of -1 should specify infinite wait | Date | Fri, 31 May 2019 19:43:55 +0000 |
| |
The dmatest module parameter 'timeout' is documented as accepting a -1 to mean "infinite timeout". Change the parameter to to signed integer, and check the value to call the appropriate wait_event() function.
Signed-off-by: Gary R Hook <gary.hook@amd.com> --- drivers/dma/dmatest.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/drivers/dma/dmatest.c b/drivers/dma/dmatest.c index b96814a7dceb..28a237686578 100644 --- a/drivers/dma/dmatest.c +++ b/drivers/dma/dmatest.c @@ -63,7 +63,7 @@ MODULE_PARM_DESC(pq_sources, "Number of p+q source buffers (default: 3)"); static int timeout = 3000; -module_param(timeout, uint, S_IRUGO | S_IWUSR); +module_param(timeout, int, S_IRUGO | S_IWUSR); MODULE_PARM_DESC(timeout, "Transfer Timeout in msec (default: 3000), " "Pass -1 for infinite timeout"); @@ -795,8 +795,13 @@ static int dmatest_func(void *data) } dma_async_issue_pending(chan); - wait_event_freezable_timeout(thread->done_wait, done->done, - msecs_to_jiffies(params->timeout)); + /* A timeout value of -1 means infinite wait */ + if (timeout == -1) + wait_event_freezable(thread->done_wait, done->done); + else + wait_event_freezable_timeout(thread->done_wait, + done->done, + msecs_to_jiffies(params->timeout)); status = dma_async_is_tx_complete(chan, cookie, NULL, NULL);
| |