[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <tip-44a54f787c0abcf75a2ed49b8ec8b2b512468f73@git.kernel.org>
Date: Fri, 9 Jul 2010 20:21:40 GMT
From: tip-bot for Steven Rostedt <srostedt@...hat.com>
To: linux-tip-commits@...r.kernel.org
Cc: linux-kernel@...r.kernel.org, hpa@...or.com, mingo@...hat.com,
fweisbec@...il.com, zeev.tarantov@...il.com, rostedt@...dmis.org,
srostedt@...hat.com, tglx@...utronix.de
Subject: [tip:perf/urgent] tracing: Add alignment to syscall metadata declarations
Commit-ID: 44a54f787c0abcf75a2ed49b8ec8b2b512468f73
Gitweb: http://git.kernel.org/tip/44a54f787c0abcf75a2ed49b8ec8b2b512468f73
Author: Steven Rostedt <srostedt@...hat.com>
AuthorDate: Fri, 9 Jul 2010 15:41:44 -0400
Committer: Steven Rostedt <rostedt@...dmis.org>
CommitDate: Fri, 9 Jul 2010 15:53:04 -0400
tracing: Add alignment to syscall metadata declarations
For some reason if we declare a static variable and then assign it
later, and the assignment contains a __attribute__((__aligned__(#))),
some versions of gcc will ignore it.
This caused the syscall meta data to not be compact in its section
and caused a kernel oops when the section was being read.
The fix for these versions of gcc seems to be to add the aligned
attribute to the declaration as well.
This fixes the BZ regression:
https://bugzilla.kernel.org/show_bug.cgi?id=16353
Reported-by: Zeev Tarantov <zeev.tarantov@...il.com>
Tested-by: Zeev Tarantov <zeev.tarantov@...il.com>
Acked-by: Frederic Weisbecker <fweisbec@...il.com>
LKML-Reference: <AANLkTinkKVmB0fpVeqUkMeqe3ZYeXJdI8xDuzJEOjYwh@...l.gmail.com>
Signed-off-by: Steven Rostedt <rostedt@...dmis.org>
---
include/linux/syscalls.h | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h
index 7f614ce..13ebb54 100644
--- a/include/linux/syscalls.h
+++ b/include/linux/syscalls.h
@@ -124,7 +124,8 @@ extern struct trace_event_functions enter_syscall_print_funcs;
extern struct trace_event_functions exit_syscall_print_funcs;
#define SYSCALL_TRACE_ENTER_EVENT(sname) \
- static struct syscall_metadata __syscall_meta_##sname; \
+ static struct syscall_metadata \
+ __attribute__((__aligned__(4))) __syscall_meta_##sname; \
static struct ftrace_event_call \
__attribute__((__aligned__(4))) event_enter_##sname; \
static struct ftrace_event_call __used \
@@ -138,7 +139,8 @@ extern struct trace_event_functions exit_syscall_print_funcs;
}
#define SYSCALL_TRACE_EXIT_EVENT(sname) \
- static struct syscall_metadata __syscall_meta_##sname; \
+ static struct syscall_metadata \
+ __attribute__((__aligned__(4))) __syscall_meta_##sname; \
static struct ftrace_event_call \
__attribute__((__aligned__(4))) event_exit_##sname; \
static struct ftrace_event_call __used \
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists