From 15d83b644a8249a0f59fa07fef42d6b6cf2798ce Mon Sep 17 00:00:00 2001 From: Udaya Bhaskara Reddy Mallavarapu Date: Thu, 5 Jan 2017 10:49:50 +0530 Subject: [PATCH] media: dvb-core: Fix for dvb_ringbuffer merge conflict resolve the dvb_ringbuffer merge conflicts due to v4.4-16.09-android-tmp branch merging. CRs-Fixed: 1086706 Change-Id: Ic5ec87d48e86fd9504fed7232286cf81b46c4035 Signed-off-by: Udaya Bhaskara Reddy Mallavarapu --- drivers/media/dvb-core/dvb_ringbuffer.c | 8 +++++--- 1 file 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);