struct iio_dev *dev_info);
 
 /**
- * __iio_init_ring_buffer() - initialize common elements of ring buffers
+ * __iio_update_ring_buffer() - update common elements of ring buffers
  * @ring:              ring buffer that is the event source
  * @bytes_per_datum:   size of individual datum including timestamp
  * @length:            number of datums in ring
  **/
-static inline void __iio_init_ring_buffer(struct iio_ring_buffer *ring,
-                                int bytes_per_datum, int length)
+static inline void __iio_update_ring_buffer(struct iio_ring_buffer *ring,
+                                           int bytes_per_datum, int length)
 {
        ring->bpd = bytes_per_datum;
        ring->length = length;
        ring->loopcount = 0;
-       ring->shared_ev_pointer.ev_p = 0;
-       spin_lock_init(&ring->shared_ev_pointer.lock);
 }
 
 /**
 
 #include <linux/workqueue.h>
 #include "ring_sw.h"
 
-static inline int __iio_init_sw_ring_buffer(struct iio_sw_ring_buffer *ring,
-                                           int bytes_per_datum, int length)
+static inline int __iio_allocate_sw_ring_buffer(struct iio_sw_ring_buffer *ring,
+                                               int bytes_per_datum, int length)
 {
        if ((length == 0) || (bytes_per_datum == 0))
                return -EINVAL;
-
-       __iio_init_ring_buffer(&ring->buf, bytes_per_datum, length);
-       spin_lock_init(&ring->use_lock);
+       __iio_update_ring_buffer(&ring->buf, bytes_per_datum, length);
        ring->data = kmalloc(length*ring->buf.bpd, GFP_KERNEL);
        ring->read_p = 0;
        ring->write_p = 0;
        return ring->data ? 0 : -ENOMEM;
 }
 
+static inline void __iio_init_sw_ring_buffer(struct iio_sw_ring_buffer *ring)
+{
+       spin_lock_init(&ring->use_lock);
+}
+
 static inline void __iio_free_sw_ring_buffer(struct iio_sw_ring_buffer *ring)
 {
        kfree(ring->data);
                goto error_ret;
        }
        __iio_free_sw_ring_buffer(ring);
-       ret = __iio_init_sw_ring_buffer(ring, ring->buf.bpd, ring->buf.length);
+       ret = __iio_allocate_sw_ring_buffer(ring, ring->buf.bpd,
+                                           ring->buf.length);
 error_ret:
        spin_unlock(&ring->use_lock);
        return ret;
        if (!ring)
                return 0;
        buf = &ring->buf;
-
        iio_ring_buffer_init(buf, indio_dev);
+       __iio_init_sw_ring_buffer(ring);
        buf->dev.type = &iio_sw_ring_type;
        device_initialize(&buf->dev);
        buf->dev.parent = &indio_dev->dev;