]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
dmatest: allocate memory for pq_coefs from heap
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Mon, 4 Mar 2013 09:09:26 +0000 (11:09 +0200)
committerVinod Koul <vinod.koul@intel.com>
Mon, 1 Apr 2013 16:42:10 +0000 (22:12 +0530)
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>
drivers/dma/dmatest.c

index e6b4cfa1eb7f92536e39b2bca1a9e0cb6de9c57c..e3955be2e3a4ec894615fc0b4371481a1f8db6bc 100644 (file)
@@ -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);