perf: Fix perf_aux_size() for greater-than 32-bit size
authorAdrian Hunter <adrian.hunter@intel.com>
Mon, 24 Jun 2024 20:10:58 +0000 (23:10 +0300)
committerPeter Zijlstra <peterz@infradead.org>
Thu, 4 Jul 2024 14:00:22 +0000 (16:00 +0200)
perf_buffer->aux_nr_pages uses a 32-bit type, so a cast is needed to
calculate a 64-bit size.

Fixes: 45bfb2e50471 ("perf: Add AUX area to ring buffer for raw data streams")
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lore.kernel.org/r/20240624201101.60186-5-adrian.hunter@intel.com
kernel/events/internal.h

index 5150d5f84c033e5c2e7594db13e3d40f334d4eb3..386d21c7edfa038d51880be8789cb4c4206595e3 100644 (file)
@@ -128,7 +128,7 @@ static inline unsigned long perf_data_size(struct perf_buffer *rb)
 
 static inline unsigned long perf_aux_size(struct perf_buffer *rb)
 {
-       return rb->aux_nr_pages << PAGE_SHIFT;
+       return (unsigned long)rb->aux_nr_pages << PAGE_SHIFT;
 }
 
 #define __DEFINE_OUTPUT_COPY_BODY(advance_buf, memcpy_func, ...)       \