[Natty PATCH] UBUNTU: SAUCE: disable_nx should not be in __cpuinitdata section for X86_32

Tim Gardner tim.gardner at canonical.com
Thu Mar 29 13:29:26 UTC 2012

BugLink: http://bugs.launchpad.net/bugs/968233

I noticed a section mismatch warning while building 3.2.0-20.33 for X86_32.

 AR      arch/x86/lib/lib.a
  LD      vmlinux.o
  MODPOST vmlinux.o
WARNING: vmlinux.o(.text+0x187833): Section mismatch in reference from the function load_elf_binary() to the variable .cpuinit.data:disable_nx
The function load_elf_binary() references
the variable __cpuinitdata disable_nx.
This is often because load_elf_binary lacks a __cpuinitdata
annotation or the annotation of disable_nx is wrong.

load_elf_binary() is definitely called after initialization.

This code was added by 'UBUNTU: ubuntu: nx-emu - i386: NX emulation', so
this is not an upstream problem.

Reported-by: Tetsuo Handa <from-ubuntu at I-love.SAKURA.ne.jp>
Signed-off-by: Tim Gardner <tim.gardner at canonical.com>
 arch/x86/mm/setup_nx.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/arch/x86/mm/setup_nx.c b/arch/x86/mm/setup_nx.c
index 90c9eff3..89fd946 100644
--- a/arch/x86/mm/setup_nx.c
+++ b/arch/x86/mm/setup_nx.c
@@ -6,7 +6,11 @@
 #include <asm/pgtable.h>
 #include <asm/proto.h>
+#ifdef CONFIG_X86_32
+int disable_nx; /* referenced by load_elf_binary() */
 int disable_nx __cpuinitdata;
  * noexec = on|off

More information about the kernel-team mailing list