diff options
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/trace/ring_buffer.c | 6 | 
1 files changed, 4 insertions, 2 deletions
diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c index ce8514feedc..cb4524fd0cb 100644 --- a/kernel/trace/ring_buffer.c +++ b/kernel/trace/ring_buffer.c @@ -177,7 +177,7 @@ void tracing_off_permanent(void)  #define RB_MAX_SMALL_DATA	(RB_ALIGNMENT * RINGBUF_TYPE_DATA_TYPE_LEN_MAX)  #define RB_EVNT_MIN_SIZE	8U	/* two 32bit words */ -#if !defined(CONFIG_64BIT) || defined(CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS) +#ifndef CONFIG_HAVE_64BIT_ALIGNED_ACCESS  # define RB_FORCE_8BYTE_ALIGNMENT	0  # define RB_ARCH_ALIGNMENT		RB_ALIGNMENT  #else @@ -185,6 +185,8 @@ void tracing_off_permanent(void)  # define RB_ARCH_ALIGNMENT		8U  #endif +#define RB_ALIGN_DATA		__aligned(RB_ARCH_ALIGNMENT) +  /* define RINGBUF_TYPE_DATA for 'case RINGBUF_TYPE_DATA:' */  #define RINGBUF_TYPE_DATA 0 ... RINGBUF_TYPE_DATA_TYPE_LEN_MAX @@ -333,7 +335,7 @@ EXPORT_SYMBOL_GPL(ring_buffer_event_data);  struct buffer_data_page {  	u64		 time_stamp;	/* page time stamp */  	local_t		 commit;	/* write committed index */ -	unsigned char	 data[];	/* data of buffer page */ +	unsigned char	 data[] RB_ALIGN_DATA;	/* data of buffer page */  };  /*  |