dmaengine: shdma: Allocate cyclic sg list dynamically
authorLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Thu, 31 Jul 2014 00:34:06 +0000 (09:34 +0900)
committerVinod Koul <vinod.koul@intel.com>
Thu, 31 Jul 2014 11:45:45 +0000 (17:15 +0530)
commit4415b03abb0aacd937010f13310b7fa437b9ad7d
treec58ffe76c1a538e6da5c553da5c3e463ddcf62b0
parentc091ff51b4d2543b828d53ce47f66905dee870fd
dmaengine: shdma: Allocate cyclic sg list dynamically

The sg list used to prepare cyclic DMA descriptors is currently
allocated statically on the stack as an array of 32 elements. This makes
the shdma_prep_dma_cyclic() function consume a lot of stack space, as
reported by the compiler:

drivers/dma/sh/shdma-base.c: In function ‘shdma_prep_dma_cyclic’:
drivers/dma/sh/shdma-base.c:715:1: warning: the frame size of 1056 bytes
is larger than 1024 bytes [-Wframe-larger-than=]

Given the limited Linux kernel stack size, this could lead to stack
overflows. Fix the problem by allocating the sg list dynamically.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
drivers/dma/sh/shdma-base.c