• Steven Rostedt's avatar
    ring-buffer: fix alignment problem · 082605de
    Steven Rostedt authored
    Impact: fix to allow some archs to use the ring buffer
    
    Commits in the ring buffer are checked by pointer arithmetic.
    If the calculation is incorrect, then the commits will never take
    place and the buffer will simply fill up and report an error.
    
    Each page in the ring buffer has a small header:
    
    struct buffer_data_page {
    	u64		time_stamp;
    	local_t		commit;
    	unsigned char	data[];
    };
    
    Unfortuntely, some of the calculations used sizeof(struct buffer_data_page)
    to know the size of the header. But this is incorrect on some archs,
    where sizeof(struct buffer_data_page) does not equal
    offsetof(struct buffer_data_page, data), and on those archs, the commits
    are never processed.
    
    This patch replaces the sizeof with offsetof.
    Signed-off-by: default avatarSteven Rostedt <srostedt@redhat.com>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    082605de
ring_buffer.c 62 KB