All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] x86, relocs: add percpu fixup for GNU ld 2.23
@ 2013-10-16  6:43 Kees Cook
  2013-10-16  6:51 ` H. Peter Anvin
  2013-10-18 13:20 ` [tip:x86/kaslr] x86/relocs: Add " tip-bot for Kees Cook
  0 siblings, 2 replies; 5+ messages in thread
From: Kees Cook @ 2013-10-16  6:43 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Thomas Gleixner, H. Peter Anvin, x86,
	Michael Davidson, Cong Ding

The GNU linker tries to put __per_cpu_load into the percpu area, resulting
in a lack of its relocation. Force this symbol to be relocated. Seen
starting with GNU ld 2.23 and later.

Reported-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Kees Cook <keescook@chromium.org>
---
 arch/x86/tools/relocs.c |    2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/x86/tools/relocs.c b/arch/x86/tools/relocs.c
index 1fa291f..7a85f29 100644
--- a/arch/x86/tools/relocs.c
+++ b/arch/x86/tools/relocs.c
@@ -729,6 +729,7 @@ static void percpu_init(void)
  *
  * The GNU linker incorrectly associates:
  *	__init_begin
+ *	__per_cpu_load
  *
  * The "gold" linker incorrectly associates:
  *	init_per_cpu__irq_stack_union
@@ -738,6 +739,7 @@ static int is_percpu_sym(ElfW(Sym) *sym, const char *symname)
 {
 	return (sym->st_shndx == per_cpu_shndx) &&
 		strcmp(symname, "__init_begin") &&
+		strcmp(symname, "__per_cpu_load") &&
 		strncmp(symname, "init_per_cpu_", 13);
 }
 
-- 
1.7.9.5


-- 
Kees Cook
Chrome OS Security

^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2013-10-18 13:21 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-10-16  6:43 [PATCH] x86, relocs: add percpu fixup for GNU ld 2.23 Kees Cook
2013-10-16  6:51 ` H. Peter Anvin
2013-10-16 14:55   ` Kees Cook
2013-10-16 15:22     ` H. Peter Anvin
2013-10-18 13:20 ` [tip:x86/kaslr] x86/relocs: Add " tip-bot for Kees Cook

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.