|
@@ -2706,20 +2706,11 @@ tracing_ctrl_write(struct file *filp, const char __user *ubuf,
|
|
|
size_t cnt, loff_t *ppos)
|
|
|
{
|
|
|
struct trace_array *tr = filp->private_data;
|
|
|
- char buf[64];
|
|
|
unsigned long val;
|
|
|
int ret;
|
|
|
|
|
|
- if (cnt >= sizeof(buf))
|
|
|
- return -EINVAL;
|
|
|
-
|
|
|
- if (copy_from_user(&buf, ubuf, cnt))
|
|
|
- return -EFAULT;
|
|
|
-
|
|
|
- buf[cnt] = 0;
|
|
|
-
|
|
|
- ret = strict_strtoul(buf, 10, &val);
|
|
|
- if (ret < 0)
|
|
|
+ ret = kstrtoul_from_user(ubuf, cnt, 10, &val);
|
|
|
+ if (ret)
|
|
|
return ret;
|
|
|
|
|
|
val = !!val;
|
|
@@ -3006,20 +2997,11 @@ tracing_max_lat_write(struct file *filp, const char __user *ubuf,
|
|
|
size_t cnt, loff_t *ppos)
|
|
|
{
|
|
|
unsigned long *ptr = filp->private_data;
|
|
|
- char buf[64];
|
|
|
unsigned long val;
|
|
|
int ret;
|
|
|
|
|
|
- if (cnt >= sizeof(buf))
|
|
|
- return -EINVAL;
|
|
|
-
|
|
|
- if (copy_from_user(&buf, ubuf, cnt))
|
|
|
- return -EFAULT;
|
|
|
-
|
|
|
- buf[cnt] = 0;
|
|
|
-
|
|
|
- ret = strict_strtoul(buf, 10, &val);
|
|
|
- if (ret < 0)
|
|
|
+ ret = kstrtoul_from_user(ubuf, cnt, 10, &val);
|
|
|
+ if (ret)
|
|
|
return ret;
|
|
|
|
|
|
*ptr = val * 1000;
|
|
@@ -3474,19 +3456,10 @@ tracing_entries_write(struct file *filp, const char __user *ubuf,
|
|
|
size_t cnt, loff_t *ppos)
|
|
|
{
|
|
|
unsigned long val;
|
|
|
- char buf[64];
|
|
|
int ret;
|
|
|
|
|
|
- if (cnt >= sizeof(buf))
|
|
|
- return -EINVAL;
|
|
|
-
|
|
|
- if (copy_from_user(&buf, ubuf, cnt))
|
|
|
- return -EFAULT;
|
|
|
-
|
|
|
- buf[cnt] = 0;
|
|
|
-
|
|
|
- ret = strict_strtoul(buf, 10, &val);
|
|
|
- if (ret < 0)
|
|
|
+ ret = kstrtoul_from_user(ubuf, cnt, 10, &val);
|
|
|
+ if (ret)
|
|
|
return ret;
|
|
|
|
|
|
/* must have at least 1 entry */
|
|
@@ -4139,19 +4112,10 @@ trace_options_write(struct file *filp, const char __user *ubuf, size_t cnt,
|
|
|
{
|
|
|
struct trace_option_dentry *topt = filp->private_data;
|
|
|
unsigned long val;
|
|
|
- char buf[64];
|
|
|
int ret;
|
|
|
|
|
|
- if (cnt >= sizeof(buf))
|
|
|
- return -EINVAL;
|
|
|
-
|
|
|
- if (copy_from_user(&buf, ubuf, cnt))
|
|
|
- return -EFAULT;
|
|
|
-
|
|
|
- buf[cnt] = 0;
|
|
|
-
|
|
|
- ret = strict_strtoul(buf, 10, &val);
|
|
|
- if (ret < 0)
|
|
|
+ ret = kstrtoul_from_user(ubuf, cnt, 10, &val);
|
|
|
+ if (ret)
|
|
|
return ret;
|
|
|
|
|
|
if (val != 0 && val != 1)
|
|
@@ -4199,20 +4163,11 @@ trace_options_core_write(struct file *filp, const char __user *ubuf, size_t cnt,
|
|
|
loff_t *ppos)
|
|
|
{
|
|
|
long index = (long)filp->private_data;
|
|
|
- char buf[64];
|
|
|
unsigned long val;
|
|
|
int ret;
|
|
|
|
|
|
- if (cnt >= sizeof(buf))
|
|
|
- return -EINVAL;
|
|
|
-
|
|
|
- if (copy_from_user(&buf, ubuf, cnt))
|
|
|
- return -EFAULT;
|
|
|
-
|
|
|
- buf[cnt] = 0;
|
|
|
-
|
|
|
- ret = strict_strtoul(buf, 10, &val);
|
|
|
- if (ret < 0)
|
|
|
+ ret = kstrtoul_from_user(ubuf, cnt, 10, &val);
|
|
|
+ if (ret)
|
|
|
return ret;
|
|
|
|
|
|
if (val != 0 && val != 1)
|