diff options
Diffstat (limited to 'drivers/char/tile-srom.c')
| -rw-r--r-- | drivers/char/tile-srom.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/char/tile-srom.c b/drivers/char/tile-srom.c index 4dc019408fac..3b22a606f79d 100644 --- a/drivers/char/tile-srom.c +++ b/drivers/char/tile-srom.c | |||
| @@ -194,17 +194,17 @@ static ssize_t srom_read(struct file *filp, char __user *buf, | |||
| 194 | 194 | ||
| 195 | hv_retval = _srom_read(srom->hv_devhdl, kernbuf, | 195 | hv_retval = _srom_read(srom->hv_devhdl, kernbuf, |
| 196 | *f_pos, bytes_this_pass); | 196 | *f_pos, bytes_this_pass); |
| 197 | if (hv_retval > 0) { | 197 | if (hv_retval <= 0) { |
| 198 | if (copy_to_user(buf, kernbuf, hv_retval) != 0) { | ||
| 199 | retval = -EFAULT; | ||
| 200 | break; | ||
| 201 | } | ||
| 202 | } else if (hv_retval <= 0) { | ||
| 203 | if (retval == 0) | 198 | if (retval == 0) |
| 204 | retval = hv_retval; | 199 | retval = hv_retval; |
| 205 | break; | 200 | break; |
| 206 | } | 201 | } |
| 207 | 202 | ||
| 203 | if (copy_to_user(buf, kernbuf, hv_retval) != 0) { | ||
| 204 | retval = -EFAULT; | ||
| 205 | break; | ||
| 206 | } | ||
| 207 | |||
| 208 | retval += hv_retval; | 208 | retval += hv_retval; |
| 209 | *f_pos += hv_retval; | 209 | *f_pos += hv_retval; |
| 210 | buf += hv_retval; | 210 | buf += hv_retval; |
