diff options
author | Dan Carpenter <dan.carpenter@oracle.com> | 2016-07-13 13:35:29 +0300 |
---|---|---|
committer | Rob Clark <robdclark@gmail.com> | 2016-07-16 10:29:32 -0400 |
commit | 5745d21f9a92fa3b70149df69574a13becc3d53e (patch) | |
tree | ff3a878abd84eafc7b77c146a73c1f8192a8df4f /drivers/gpu | |
parent | 06f3217207766b4bc2e56b88e0736037ae92fd30 (diff) | |
download | linux-5745d21f9a92fa3b70149df69574a13becc3d53e.tar.gz linux-5745d21f9a92fa3b70149df69574a13becc3d53e.tar.bz2 linux-5745d21f9a92fa3b70149df69574a13becc3d53e.zip |
drm/msm: return -EFAULT instead of bytes remaining
copy_to/from_user returns the number of bytes remaining to be copied but
we want to return -EFAULT.
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Rob Clark <robdclark@gmail.com>
Diffstat (limited to 'drivers/gpu')
-rw-r--r-- | drivers/gpu/drm/msm/msm_perf.c | 7 | ||||
-rw-r--r-- | drivers/gpu/drm/msm/msm_rd.c | 5 |
2 files changed, 7 insertions, 5 deletions
diff --git a/drivers/gpu/drm/msm/msm_perf.c b/drivers/gpu/drm/msm/msm_perf.c index 830857c47c86..17fe4e53e0d1 100644 --- a/drivers/gpu/drm/msm/msm_perf.c +++ b/drivers/gpu/drm/msm/msm_perf.c @@ -132,7 +132,7 @@ static ssize_t perf_read(struct file *file, char __user *buf, size_t sz, loff_t *ppos) { struct msm_perf_state *perf = file->private_data; - int n = 0, ret; + int n = 0, ret = 0; mutex_lock(&perf->read_lock); @@ -143,9 +143,10 @@ static ssize_t perf_read(struct file *file, char __user *buf, } n = min((int)sz, perf->buftot - perf->bufpos); - ret = copy_to_user(buf, &perf->buf[perf->bufpos], n); - if (ret) + if (copy_to_user(buf, &perf->buf[perf->bufpos], n)) { + ret = -EFAULT; goto out; + } perf->bufpos += n; *ppos += n; diff --git a/drivers/gpu/drm/msm/msm_rd.c b/drivers/gpu/drm/msm/msm_rd.c index 24254e07bcd5..3a5fdfcd67ae 100644 --- a/drivers/gpu/drm/msm/msm_rd.c +++ b/drivers/gpu/drm/msm/msm_rd.c @@ -149,9 +149,10 @@ static ssize_t rd_read(struct file *file, char __user *buf, goto out; n = min_t(int, sz, circ_count_to_end(&rd->fifo)); - ret = copy_to_user(buf, fptr, n); - if (ret) + if (copy_to_user(buf, fptr, n)) { + ret = -EFAULT; goto out; + } fifo->tail = (fifo->tail + n) & (BUF_SZ - 1); *ppos += n; |