summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorHari Kanigeri <h-kanigeri2@ti.com>2010-08-16 11:13:09 -0500
committerRicardo Perez Olivares <x0081762@ti.com>2010-08-16 20:05:24 -0500
commitf2046a047a51bc1b1e17ad7cf5d8f1b30c9b6e60 (patch)
tree24ba1a37baa81cb134b6acad9e0d8ba58883c0dc /drivers
parente8f6f6dccf7cd4bfa190887822c7e54cdc115836 (diff)
SYSLINK:ProcMgr-fix compile warning due to stack overflow
This is to fix the following compile warning in procmgr_dr > drivers/dsp/syslink/procmgr/procmgr_drv.c: In function 'proc_mgr_drv_ioctl': > drivers/dsp/syslink/procmgr/procmgr_drv.c:582: warning: the frame size of 1328 bytes is larger than 1024 bytes The compile warning is coming due to static declaration of proc_mgr_proc_info structure. The fix is changing it do dynamic allocation. Signed-off-by: Hari Kanigeri <h-kanigeri2@ti.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/dsp/syslink/procmgr/procmgr_drv.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/drivers/dsp/syslink/procmgr/procmgr_drv.c b/drivers/dsp/syslink/procmgr/procmgr_drv.c
index d6c82ad1718c..4c70c93c7817 100644
--- a/drivers/dsp/syslink/procmgr/procmgr_drv.c
+++ b/drivers/dsp/syslink/procmgr/procmgr_drv.c
@@ -503,7 +503,7 @@ static int proc_mgr_drv_ioctl(struct inode *inode, struct file *filp,
case CMD_PROCMGR_GETPROCINFO:
{
struct proc_mgr_cmd_args_get_proc_info src_args;
- struct proc_mgr_proc_info proc_info;
+ struct proc_mgr_proc_info *proc_info;
/* Copy the full args from user-side. */
retval = copy_from_user((void *)&src_args,
@@ -511,14 +511,20 @@ static int proc_mgr_drv_ioctl(struct inode *inode, struct file *filp,
sizeof(struct proc_mgr_cmd_args_get_proc_info));
if (WARN_ON(retval != 0))
goto func_exit;
+
+ proc_info = kzalloc(sizeof(struct proc_mgr_proc_info),
+ GFP_KERNEL);
retval = proc_mgr_get_proc_info
- (src_args.handle, &proc_info);
- if (WARN_ON(retval < 0))
+ (src_args.handle, proc_info);
+ if (WARN_ON(retval < 0)) {
+ kfree(proc_info);
goto func_exit;
+ }
retval = copy_to_user((void *)(src_args.proc_info),
- (const void *) &proc_info,
+ (const void *) proc_info,
sizeof(struct proc_mgr_proc_info));
WARN_ON(retval < 0);
+ kfree(proc_info);
}
break;