Эх сурвалжийг харах

ring-buffer: replace sizeof of event header with offsetof

Impact: fix to possible alignment problems on some archs.

Some arch compilers include an NULL char array in the sizeof field.
Since the ring_buffer_event type includes one of these, it is better
to use the "offsetof" instead, to avoid strange bugs on these archs.

Signed-off-by: Steven Rostedt <srostedt@redhat.com>
Steven Rostedt 16 жил өмнө
parent
commit
e3d6bf0a07

+ 1 - 1
kernel/trace/ring_buffer.c

@@ -132,7 +132,7 @@ void ring_buffer_normalize_time_stamp(int cpu, u64 *ts)
 }
 }
 EXPORT_SYMBOL_GPL(ring_buffer_normalize_time_stamp);
 EXPORT_SYMBOL_GPL(ring_buffer_normalize_time_stamp);
 
 
-#define RB_EVNT_HDR_SIZE (sizeof(struct ring_buffer_event))
+#define RB_EVNT_HDR_SIZE (offsetof(struct ring_buffer_event, array))
 #define RB_ALIGNMENT		4U
 #define RB_ALIGNMENT		4U
 #define RB_MAX_SMALL_DATA	28
 #define RB_MAX_SMALL_DATA	28