diff options
Diffstat (limited to 'drivers/s390/char/sclp_async.c')
| -rw-r--r-- | drivers/s390/char/sclp_async.c | 9 | 
1 files changed, 3 insertions, 6 deletions
| diff --git a/drivers/s390/char/sclp_async.c b/drivers/s390/char/sclp_async.c index 7ad30e72f868..5f9f929e891c 100644 --- a/drivers/s390/char/sclp_async.c +++ b/drivers/s390/char/sclp_async.c @@ -82,12 +82,9 @@ static int proc_handler_callhome(struct ctl_table *ctl, int write,  			return -EFAULT;  	} else {  		len = *count; -		rc = copy_from_user(buf, buffer, sizeof(buf)); -		if (rc != 0) -			return -EFAULT; -		buf[sizeof(buf) - 1] = '\0'; -		if (strict_strtoul(buf, 0, &val) != 0) -			return -EINVAL; +		rc = kstrtoul_from_user(buffer, len, 0, &val); +		if (rc) +			return rc;  		if (val != 0 && val != 1)  			return -EINVAL;  		callhome_enabled = val; | 
