lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <1279667984.4818.21.camel@gandalf.stny.rr.com>
Date:	Tue, 20 Jul 2010 19:19:44 -0400
From:	Steven Rostedt <rostedt@...dmis.org>
To:	LKML <linux-kernel@...r.kernel.org>
Cc:	Ingo Molnar <mingo@...e.hu>,
	Linus Torvalds <torvalds@...ux-foundation.org>,
	Andrew Morton <akpm@...ux-foundation.org>,
	Sam Ravnborg <sam@...nborg.org>,
	Zeev Tarantov <zeev.tarantov@...il.com>,
	Frederic Weisbecker <fweisbec@...il.com>
Subject: [PATCH][GIT PULL][v2.6.35] tracing: Properly align linker defined
 symbols


Ingo,

Linus did like this patch better. My original patch seemed to fix the
problem, but this is probably a more robust fix.

Please pull the latest tip/perf/urgent tree, which can be found at:

  git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace.git
tip/perf/urgent


Sam Ravnborg (1):
      tracing: Properly align linker defined symbols

----
 include/asm-generic/vmlinux.lds.h |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)
---------------------------
commit 07fca0e57fca925032526349f4370f97ed580cc9
Author: Sam Ravnborg <sam@...nborg.org>
Date:   Sat Jul 10 08:35:00 2010 +0200

    tracing: Properly align linker defined symbols
    
    We define a number of symbols in the linker scipt like this:
    
        __start_syscalls_metadata = .;
        *(__syscalls_metadata)
    
    But we do not know the alignment of "." when we assign
    the __start_syscalls_metadata symbol.
    gcc started to uses bigger alignment for structs (32 bytes),
    so we saw situations where the linker due to alignment
    constraints increased the value of "." after the symbol assignment.
    
    This resulted in boot fails.
    
    Fix this by forcing a 32 byte alignment of "." before the
    assignment.
    
    This patch introduces the forced alignment for
    ftrace_events and syscalls_metadata.
    It may be required in more places.
    
    Reported-by: Zeev Tarantov <zeev.tarantov@...il.com>
    Signed-off-by: Sam Ravnborg <sam@...nborg.org>
    LKML-Reference: <20100710063459.GA14596@...kur.ravnborg.org>
    Cc: Frederic Weisbecker <fweisbec@...il.com>
    Signed-off-by: Steven Rostedt <rostedt@...dmis.org>

diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
index 48c5299..4b5902a 100644
--- a/include/asm-generic/vmlinux.lds.h
+++ b/include/asm-generic/vmlinux.lds.h
@@ -63,6 +63,12 @@
 /* Align . to a 8 byte boundary equals to maximum function alignment. */
 #define ALIGN_FUNCTION()  . = ALIGN(8)
 
+/*
+ * Align to a 32 byte boundary equal to the
+ * alignment gcc 4.5 uses for a struct
+ */
+#define STRUCT_ALIGN() . = ALIGN(32)
+
 /* The actual configuration determine if the init/exit sections
  * are handled as text/data or they can be discarded (which
  * often happens at runtime)
@@ -166,7 +172,11 @@
 	LIKELY_PROFILE()		       				\
 	BRANCH_PROFILE()						\
 	TRACE_PRINTKS()							\
+									\
+	STRUCT_ALIGN();							\
 	FTRACE_EVENTS()							\
+									\
+	STRUCT_ALIGN();							\
 	TRACE_SYSCALLS()
 
 /*


--
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

Powered by Openwall GNU/*/Linux Powered by OpenVZ