Skip to content

Commit

Permalink
perf: Move mmap page data_head offset assertion out of header
Browse files Browse the repository at this point in the history
Having the build time assertion in header is making the perf
build fail on x86 with:

  ../../include/linux/perf_event.h:411:32: error: variably modified \
		‘__assert_mmap_data_head_offset’ at file scope [-Werror]

I'm moving the build time validation out of the header, because
I think it's better than to lessen the perf build warn/error
check.

Signed-off-by: Jiri Olsa <jolsa@redhat.com>
Cc: acme@redhat.com
Cc: a.p.zijlstra@chello.nl
Cc: paulus@samba.org
Cc: cjashfor@linux.vnet.ibm.com
Cc: fweisbec@gmail.com
Link: http://lkml.kernel.org/r/1332513680-7870-1-git-send-email-jolsa@redhat.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
  • Loading branch information
Jiri Olsa authored and Ingo Molnar committed Mar 24, 2012
1 parent 04a54d2 commit b01c3a0
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 7 deletions.
7 changes: 0 additions & 7 deletions include/linux/perf_event.h
Original file line number Diff line number Diff line change
Expand Up @@ -403,13 +403,6 @@ struct perf_event_mmap_page {
__u64 data_tail; /* user-space written tail */
};

/*
* Build time assertion that we keep the data_head at the intended location.
* IOW, validation we got the __reserved[] size right.
*/
extern char __assert_mmap_data_head_offset
[1 - 2*!!(offsetof(struct perf_event_mmap_page, data_head) != 1024)];

#define PERF_RECORD_MISC_CPUMODE_MASK (7 << 0)
#define PERF_RECORD_MISC_CPUMODE_UNKNOWN (0 << 0)
#define PERF_RECORD_MISC_KERNEL (1 << 0)
Expand Down
7 changes: 7 additions & 0 deletions kernel/events/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -7116,6 +7116,13 @@ void __init perf_event_init(void)

/* do not patch jump label more than once per second */
jump_label_rate_limit(&perf_sched_events, HZ);

/*
* Build time assertion that we keep the data_head at the intended
* location. IOW, validation we got the __reserved[] size right.
*/
BUILD_BUG_ON((offsetof(struct perf_event_mmap_page, data_head))
!= 1024);
}

static int __init perf_event_sysfs_init(void)
Expand Down

0 comments on commit b01c3a0

Please sign in to comment.