Fix: ensure power of 2 check handles 64-bit size_t entirely
[lttng-modules.git] / lib / ringbuffer / ring_buffer_splice.c
index 531914a4ef04a9b205564ddba1cc0df6e9de1522..41a6ff8aa02526705e6c0b73151b40eb13ea7077 100644 (file)
@@ -13,6 +13,7 @@
 #include <linux/module.h>
 #include <linux/fs.h>
 
+#include "../../wrapper/splice.h"
 #include "../../wrapper/ringbuffer/backend.h"
 #include "../../wrapper/ringbuffer/frontend.h"
 #include "../../wrapper/ringbuffer/vfs.h"
@@ -68,7 +69,7 @@ static int subbuf_splice_actor(struct file *in,
 {
        struct lib_ring_buffer *buf = in->private_data;
        struct channel *chan = buf->backend.chan;
-       const struct lib_ring_buffer_config *config = chan->backend.config;
+       const struct lib_ring_buffer_config *config = &chan->backend.config;
        unsigned int poff, subbuf_pages, nr_pages;
        struct page *pages[PIPE_DEF_BUFFERS];
        struct partial_page partial[PIPE_DEF_BUFFERS];
@@ -80,7 +81,7 @@ static int subbuf_splice_actor(struct file *in,
                .ops = &ring_buffer_pipe_buf_ops,
                .spd_release = lib_ring_buffer_page_release,
        };
-       unsigned long consumed_old, consumed_idx, roffset;
+       unsigned long consumed_old, roffset;
        unsigned long bytes_avail;
 
        /*
@@ -89,7 +90,6 @@ static int subbuf_splice_actor(struct file *in,
        WARN_ON(atomic_long_read(&buf->active_readers) != 1);
        consumed_old = lib_ring_buffer_get_consumed(config, buf);
        consumed_old += *ppos;
-       consumed_idx = subbuf_index(consumed_old, chan);
 
        /*
         * Adjust read len, if longer than what is available.
@@ -142,7 +142,7 @@ static int subbuf_splice_actor(struct file *in,
        if (!spd.nr_pages)
                return 0;
 
-       return splice_to_pipe(pipe, &spd);
+       return wrapper_splice_to_pipe(pipe, &spd);
 }
 
 ssize_t lib_ring_buffer_splice_read(struct file *in, loff_t *ppos,
@@ -151,7 +151,7 @@ ssize_t lib_ring_buffer_splice_read(struct file *in, loff_t *ppos,
 {
        struct lib_ring_buffer *buf = in->private_data;
        struct channel *chan = buf->backend.chan;
-       const struct lib_ring_buffer_config *config = chan->backend.config;
+       const struct lib_ring_buffer_config *config = &chan->backend.config;
        ssize_t spliced;
        int ret;
 
This page took 0.026043 seconds and 4 git commands to generate.