Subject: histogram-maxlatproc-use-dyn-mem.patch From: Carsten Emde Date: Wed, 24 Feb 2010 07:49:33 +0100 Remove stack allocation of buffer space, use dyn memory instead. Use a better assumption to estimate the required buffer space. Reported-by: Dan Carpenter Signed-off-by: Carsten Emde Index: head/kernel/trace/latency_hist.c =================================================================== --- head.orig/kernel/trace/latency_hist.c +++ head/kernel/trace/latency_hist.c @@ -442,13 +442,19 @@ static ssize_t do_pid(struct file *file, static ssize_t show_maxlatproc(struct file *file, char __user *ubuf, size_t cnt, loff_t *ppos) { - char buf[1024]; int r; struct maxlatproc_data *mp = file->private_data; + int strmaxlen = TASK_COMM_LEN + 32; + char *buf = kmalloc(strmaxlen, GFP_KERNEL); - r = snprintf(buf, sizeof(buf), "%d %d %ld %s\n", + if (buf == NULL) + return -ENOMEM; + + r = snprintf(buf, strmaxlen, "%d %d %ld %s\n", mp->pid, MAX_RT_PRIO-1 - mp->prio, mp->latency, mp->comm); - return simple_read_from_buffer(ubuf, cnt, ppos, buf, r); + r = simple_read_from_buffer(ubuf, cnt, ppos, buf, r); + kfree(buf); + return r; } #endif