ring-buffer: Add cast to unsigned long addr passed to virt_to_page()
authorSteven Rostedt (Google) <rostedt@goodmis.org>
Wed, 15 May 2024 05:05:58 +0000 (01:05 -0400)
committerSteven Rostedt (Google) <rostedt@goodmis.org>
Wed, 15 May 2024 05:28:42 +0000 (01:28 -0400)
The sub-buffer pages are held in an unsigned long array, and when it is
passed to virt_to_page() a cast is needed.

Link: https://lore.kernel.org/all/20240515124808.06279d04@canb.auug.org.au/
Link: https://lore.kernel.org/linux-trace-kernel/20240515010558.4abaefdd@rorschach.local.home
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Fixes: 117c39200d9d ("ring-buffer: Introducing ring-buffer mapping functions")
Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
kernel/trace/ring_buffer.c

index a02c7a52a0f5b2cb6e4d93448466f510bc517644..7345a8b625fb8da7da5ab47023240d42296c7508 100644 (file)
@@ -6283,7 +6283,7 @@ static int __rb_map_vma(struct ring_buffer_per_cpu *cpu_buffer,
        }
 
        while (p < nr_pages) {
-               struct page *page = virt_to_page(cpu_buffer->subbuf_ids[s]);
+               struct page *page = virt_to_page((void *)cpu_buffer->subbuf_ids[s]);
                int off = 0;
 
                if (WARN_ON_ONCE(s >= nr_subbufs)) {