diff options
author | Linux Build Service Account <lnxbuild@localhost> | 2017-01-07 13:44:17 -0800 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2017-01-07 13:44:17 -0800 |
commit | 96f3cc94ddf3402d05000996d78a2fb6f35be838 (patch) | |
tree | f96d5ac20fdbe2357386779fb87cc0f26af4d379 | |
parent | fc0faf1b5e3e195a7293cb6ed62fd31726ab2466 (diff) | |
parent | 15d83b644a8249a0f59fa07fef42d6b6cf2798ce (diff) |
Merge "media: dvb-core: Fix for dvb_ringbuffer merge conflict"
-rw-r--r-- | drivers/media/dvb-core/dvb_ringbuffer.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/media/dvb-core/dvb_ringbuffer.c b/drivers/media/dvb-core/dvb_ringbuffer.c index 0d44deed65bd..8ab60a4fec00 100644 --- a/drivers/media/dvb-core/dvb_ringbuffer.c +++ b/drivers/media/dvb-core/dvb_ringbuffer.c @@ -233,9 +233,11 @@ ssize_t dvb_ringbuffer_write_user(struct dvb_ringbuffer *rbuf, */ smp_store_release(&rbuf->pwrite, 0); } - status = copy_from_user(rbuf->data+rbuf->pwrite, buf, todo); - if (status) - return len - todo; + + if (copy_from_user(rbuf->data + rbuf->pwrite, buf, todo)) { + smp_store_release(&rbuf->pwrite, oldpwrite); + return -EFAULT; + } /* smp_store_release() for write pointer update, see above */ smp_store_release(&rbuf->pwrite, (rbuf->pwrite + todo) % rbuf->size); |