diff options
author | Dan Carpenter <dan.carpenter@oracle.com> | 2016-07-13 06:35:29 -0400 |
---|---|---|
committer | Rob Clark <robdclark@gmail.com> | 2016-07-16 10:29:32 -0400 |
commit | 5745d21f9a92fa3b70149df69574a13becc3d53e (patch) | |
tree | ff3a878abd84eafc7b77c146a73c1f8192a8df4f | |
parent | 06f3217207766b4bc2e56b88e0736037ae92fd30 (diff) |
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>
-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, | |||
132 | size_t sz, loff_t *ppos) | 132 | size_t sz, loff_t *ppos) |
133 | { | 133 | { |
134 | struct msm_perf_state *perf = file->private_data; | 134 | struct msm_perf_state *perf = file->private_data; |
135 | int n = 0, ret; | 135 | int n = 0, ret = 0; |
136 | 136 | ||
137 | mutex_lock(&perf->read_lock); | 137 | mutex_lock(&perf->read_lock); |
138 | 138 | ||
@@ -143,9 +143,10 @@ static ssize_t perf_read(struct file *file, char __user *buf, | |||
143 | } | 143 | } |
144 | 144 | ||
145 | n = min((int)sz, perf->buftot - perf->bufpos); | 145 | n = min((int)sz, perf->buftot - perf->bufpos); |
146 | ret = copy_to_user(buf, &perf->buf[perf->bufpos], n); | 146 | if (copy_to_user(buf, &perf->buf[perf->bufpos], n)) { |
147 | if (ret) | 147 | ret = -EFAULT; |
148 | goto out; | 148 | goto out; |
149 | } | ||
149 | 150 | ||
150 | perf->bufpos += n; | 151 | perf->bufpos += n; |
151 | *ppos += n; | 152 | *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, | |||
149 | goto out; | 149 | goto out; |
150 | 150 | ||
151 | n = min_t(int, sz, circ_count_to_end(&rd->fifo)); | 151 | n = min_t(int, sz, circ_count_to_end(&rd->fifo)); |
152 | ret = copy_to_user(buf, fptr, n); | 152 | if (copy_to_user(buf, fptr, n)) { |
153 | if (ret) | 153 | ret = -EFAULT; |
154 | goto out; | 154 | goto out; |
155 | } | ||
155 | 156 | ||
156 | fifo->tail = (fifo->tail + n) & (BUF_SZ - 1); | 157 | fifo->tail = (fifo->tail + n) & (BUF_SZ - 1); |
157 | *ppos += n; | 158 | *ppos += n; |