From 3e102c76250d281d06aebadafdb0089a4b00064f Mon Sep 17 00:00:00 2001 From: Marcin Slusarz Date: Wed, 28 Jul 2010 01:18:01 +0200 Subject: [PATCH] --- yaml --- r: 209616 b: refs/heads/master c: 1aa54bca6ee0d07ebcafb8ca8074b624d80724aa h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/kernel/trace/trace.c | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 9efebfb3d1ac..77bc00678f0e 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 2a37a3df57c44e947271758a1aa4bea7bff9feab +refs/heads/master: 1aa54bca6ee0d07ebcafb8ca8074b624d80724aa diff --git a/trunk/kernel/trace/trace.c b/trunk/kernel/trace/trace.c index 086d36316805..88b42d14d32d 100644 --- a/trunk/kernel/trace/trace.c +++ b/trunk/kernel/trace/trace.c @@ -3498,6 +3498,7 @@ tracing_mark_write(struct file *filp, const char __user *ubuf, size_t cnt, loff_t *fpos) { char *buf; + size_t written; if (tracing_disabled) return -EINVAL; @@ -3519,11 +3520,15 @@ tracing_mark_write(struct file *filp, const char __user *ubuf, } else buf[cnt] = '\0'; - cnt = mark_printk("%s", buf); + written = mark_printk("%s", buf); kfree(buf); - *fpos += cnt; + *fpos += written; - return cnt; + /* don't tell userspace we wrote more - it might confuse them */ + if (written > cnt) + written = cnt; + + return written; } static int tracing_clock_show(struct seq_file *m, void *v)