diff options
Diffstat (limited to 'kernel/trace/ftrace.c')
-rw-r--r-- | kernel/trace/ftrace.c | 13 |
1 files changed, 2 insertions, 11 deletions
diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c index e1538071660d..458018a1ac9a 100644 --- a/kernel/trace/ftrace.c +++ b/kernel/trace/ftrace.c | |||
@@ -803,19 +803,10 @@ ftrace_profile_write(struct file *filp, const char __user *ubuf, | |||
803 | size_t cnt, loff_t *ppos) | 803 | size_t cnt, loff_t *ppos) |
804 | { | 804 | { |
805 | unsigned long val; | 805 | unsigned long val; |
806 | char buf[64]; /* big enough to hold a number */ | ||
807 | int ret; | 806 | int ret; |
808 | 807 | ||
809 | if (cnt >= sizeof(buf)) | 808 | ret = kstrtoul_from_user(ubuf, cnt, 10, &val); |
810 | return -EINVAL; | 809 | if (ret) |
811 | |||
812 | if (copy_from_user(&buf, ubuf, cnt)) | ||
813 | return -EFAULT; | ||
814 | |||
815 | buf[cnt] = 0; | ||
816 | |||
817 | ret = strict_strtoul(buf, 10, &val); | ||
818 | if (ret < 0) | ||
819 | return ret; | 810 | return ret; |
820 | 811 | ||
821 | val = !!val; | 812 | val = !!val; |