diff options
author | 2013-03-04 11:09:26 +0200 | |
---|---|---|
committer | 2013-04-15 09:51:16 +0530 | |
commit | 945b5af3cedcdfed6d2d940e53cd19933bb57386 (patch) | |
tree | 4107086f55816e78e4bbd08bb9abc94df137cee4 /drivers/dma/dmatest.c | |
parent | dmatest: cancel thread immediately when asked for (diff) | |
download | linux-945b5af3cedcdfed6d2d940e53cd19933bb57386.tar.gz linux-945b5af3cedcdfed6d2d940e53cd19933bb57386.tar.bz2 linux-945b5af3cedcdfed6d2d940e53cd19933bb57386.zip |
dmatest: allocate memory for pq_coefs from heap
This will help in future to hide a global variable usage.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Diffstat (limited to 'drivers/dma/dmatest.c')
-rw-r--r-- | drivers/dma/dmatest.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/drivers/dma/dmatest.c b/drivers/dma/dmatest.c index e6b4cfa1eb7f..e3955be2e3a4 100644 --- a/drivers/dma/dmatest.c +++ b/drivers/dma/dmatest.c @@ -278,7 +278,7 @@ static int dmatest_func(void *data) dma_cookie_t cookie; enum dma_status status; enum dma_ctrl_flags flags; - u8 pq_coefs[pq_sources + 1]; + u8 *pq_coefs = NULL; int ret; int src_cnt; int dst_cnt; @@ -302,10 +302,15 @@ static int dmatest_func(void *data) /* force odd to ensure dst = src */ src_cnt = min_odd(pq_sources | 1, dma_maxpq(dev, 0)); dst_cnt = 2; + + pq_coefs = kmalloc(pq_sources+1, GFP_KERNEL); + if (!pq_coefs) + goto err_thread_type; + for (i = 0; i < src_cnt; i++) pq_coefs[i] = 1; } else - goto err_srcs; + goto err_thread_type; thread->srcs = kcalloc(src_cnt+1, sizeof(u8 *), GFP_KERNEL); if (!thread->srcs) @@ -533,6 +538,8 @@ err_dsts: err_srcbuf: kfree(thread->srcs); err_srcs: + kfree(pq_coefs); +err_thread_type: pr_notice("%s: terminating after %u tests, %u failures (status %d)\n", thread_name, total_tests, failed_tests, ret); |