diff options
Diffstat (limited to 'drivers/misc/sgi-gru/gruprocfs.c')
| -rw-r--r-- | drivers/misc/sgi-gru/gruprocfs.c | 16 | 
1 files changed, 6 insertions, 10 deletions
diff --git a/drivers/misc/sgi-gru/gruprocfs.c b/drivers/misc/sgi-gru/gruprocfs.c index 7768b87d995..4f763592239 100644 --- a/drivers/misc/sgi-gru/gruprocfs.c +++ b/drivers/misc/sgi-gru/gruprocfs.c @@ -160,15 +160,11 @@ static int options_show(struct seq_file *s, void *p)  static ssize_t options_write(struct file *file, const char __user *userbuf,  			     size_t count, loff_t *data)  { -	char buf[20]; +	int ret; -	if (count >= sizeof(buf)) -		return -EINVAL; -	if (copy_from_user(buf, userbuf, count)) -		return -EFAULT; -	buf[count] = '\0'; -	if (strict_strtoul(buf, 0, &gru_options)) -		return -EINVAL; +	ret = kstrtoul_from_user(userbuf, count, 0, &gru_options); +	if (ret) +		return ret;  	return count;  } @@ -324,7 +320,7 @@ static const struct file_operations gru_fops = {  static struct proc_entry {  	char *name; -	int mode; +	umode_t mode;  	const struct file_operations *fops;  	struct proc_dir_entry *entry;  } proc_files[] = { @@ -355,7 +351,7 @@ static void delete_proc_files(void)  		for (p = proc_files; p->name; p++)  			if (p->entry)  				remove_proc_entry(p->name, proc_gru); -		remove_proc_entry("gru", proc_gru->parent); +		proc_remove(proc_gru);  	}  }  | 
