Loading drivers/media/dvb-core/dvb_ringbuffer.c +6 −4 Original line number Diff line number Diff line Loading @@ -5,7 +5,7 @@ * Copyright (C) 2003 Oliver Endriss * Copyright (C) 2004 Andrew de Quincey * * Copyright (c) 2012-2014, The Linux Foundation. All rights reserved. * Copyright (c) 2012-2014,2017 The Linux Foundation. All rights reserved. * * based on code originally found in av7110.c & dvb_ci.c: * Copyright (C) 1999-2003 Ralph Metzler Loading Loading @@ -235,9 +235,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); Loading Loading
drivers/media/dvb-core/dvb_ringbuffer.c +6 −4 Original line number Diff line number Diff line Loading @@ -5,7 +5,7 @@ * Copyright (C) 2003 Oliver Endriss * Copyright (C) 2004 Andrew de Quincey * * Copyright (c) 2012-2014, The Linux Foundation. All rights reserved. * Copyright (c) 2012-2014,2017 The Linux Foundation. All rights reserved. * * based on code originally found in av7110.c & dvb_ci.c: * Copyright (C) 1999-2003 Ralph Metzler Loading Loading @@ -235,9 +235,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); Loading