Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1169881

[PATCH 06/12] x86/compat: Don't build 32-bit vdso if not needed.

Path csiph.com!aioe.org!bofh.it!news.nic.it!robomod
From Brian Gerst <brgerst@gmail.com>
Newsgroups linux.kernel
Subject [PATCH 06/12] x86/compat: Don't build 32-bit vdso if not needed.
Date Mon, 22 Jun 2015 14:00:03 +0200
Message-ID <pE8yn-2Mp-35@gated-at.bofh.it> (permalink)
References <pE8ym-2Mp-5@gated-at.bofh.it>
X-Original-To x86@kernel.org
Dkim-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=H7xTMFYhR19dHv26Hx4/MxoLvjhxwiRCf/MWxGKU5LU=; b=ICCnm1YvNe+p1oZmrt7ygoR3Ekisbdh4HYt8kX1exz3JqMLGpQG5bJnVsBaSta6FMd ZWh8yMlYq6QTrB9CVR4hrC4a8MGR8TTGGf0oElN5QwmkyPCUnV7cqELlpwvZ6Oughlz1 JoWI4X6976Hv4UqVDpk/k0OZjrioHnLxYTpfALgDpI49X8bdYkHO78lFHVSqi2SVCGhP TQ27OYWHJUGKqEz7IGJiNdHvuNsJS1oiJM5WvZmfzXZwXZ4+xHRhCNgOptwVKjdgt1BQ yrjarWTjqZb6/Mhz8O+JcofcwBNc7RKd4wRULdCoXifjPA9/wHU/mPG/WxWcauZvlK2/ cgiw==
X-Received by 10.170.77.194 with SMTP id t185mr36041281ykt.44.1434974146498; Mon, 22 Jun 2015 04:55:46 -0700 (PDT)
X-Mailer git-send-email 2.1.0
Sender robomod@news.nic.it
List-ID <linux-kernel.vger.kernel.org>
X-Mailing-List linux-kernel@vger.kernel.org
Approved robomod@news.nic.it
Lines 86
Organization linux.* mail to news gateway
X-Original-Cc linux-kernel@vger.kernel.org, Ingo Molnar <mingo@kernel.org>, "H. Peter Anvin" <hpa@zytor.com>, Denys Vlasenko <dvlasenk@redhat.com>, Andy Lutomirski <luto@amacapital.net>
X-Original-Date Mon, 22 Jun 2015 07:55:15 -0400
X-Original-Message-ID <1434974121-32575-7-git-send-email-brgerst@gmail.com>
X-Original-References <1434974121-32575-1-git-send-email-brgerst@gmail.com>
X-Original-Sender linux-kernel-owner@vger.kernel.org
Xref aioe.org linux.kernel:1169881

Show key headers only | View raw


Build the 32-bit vdso only for native 32-bit or 32-bit compat is
enabled.  x32 should not force it to build.

Signed-off-by: Brian Gerst <brgerst@gmail.com>
---
 arch/x86/entry/vdso/Makefile | 6 +++---
 arch/x86/entry/vdso/vma.c    | 7 +++++--
 arch/x86/include/asm/elf.h   | 2 +-
 3 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/arch/x86/entry/vdso/Makefile b/arch/x86/entry/vdso/Makefile
index e970320..96c0617 100644
--- a/arch/x86/entry/vdso/Makefile
+++ b/arch/x86/entry/vdso/Makefile
@@ -8,7 +8,7 @@ KASAN_SANITIZE := n
 VDSO64-$(CONFIG_X86_64)		:= y
 VDSOX32-$(CONFIG_X86_X32_ABI)	:= y
 VDSO32-$(CONFIG_X86_32)		:= y
-VDSO32-$(CONFIG_COMPAT)		:= y
+VDSO32-$(CONFIG_IA32_EMULATION)	:= y
 
 # files to link into the vdso
 vobjs-y := vdso-note.o vclock_gettime.o vgetcpu.o
@@ -20,7 +20,7 @@ obj-y				+= vma.o
 vdso_img-$(VDSO64-y)		+= 64
 vdso_img-$(VDSOX32-y)		+= x32
 vdso_img-$(VDSO32-y)		+= 32-int80
-vdso_img-$(CONFIG_COMPAT)	+= 32-syscall
+vdso_img-$(CONFIG_IA32_EMULATION)	+= 32-syscall
 vdso_img-$(VDSO32-y)		+= 32-sysenter
 
 obj-$(VDSO32-y)			+= vdso32-setup.o
@@ -126,7 +126,7 @@ $(obj)/vdsox32.so.dbg: $(src)/vdsox32.lds $(vobjx32s) FORCE
 # Build multiple 32-bit vDSO images to choose from at boot time.
 #
 vdso32.so-$(VDSO32-y)		+= int80
-vdso32.so-$(CONFIG_COMPAT)	+= syscall
+vdso32.so-$(CONFIG_IA32_EMULATION)	+= syscall
 vdso32.so-$(VDSO32-y)		+= sysenter
 
 vdso32-images			= $(vdso32.so-y:%=vdso32-%.so)
diff --git a/arch/x86/entry/vdso/vma.c b/arch/x86/entry/vdso/vma.c
index 1c9f750..4345431 100644
--- a/arch/x86/entry/vdso/vma.c
+++ b/arch/x86/entry/vdso/vma.c
@@ -177,7 +177,7 @@ up_fail:
 	return ret;
 }
 
-#if defined(CONFIG_X86_32) || defined(CONFIG_COMPAT)
+#if defined(CONFIG_X86_32) || defined(CONFIG_IA32_EMULATION)
 static int load_vdso32(void)
 {
 	int ret;
@@ -219,8 +219,11 @@ int compat_arch_setup_additional_pages(struct linux_binprm *bprm,
 		return map_vdso(&vdso_image_x32, true);
 	}
 #endif
-
+#ifdef CONFIG_IA32_EMULATION
 	return load_vdso32();
+#else
+	return 0;
+#endif
 }
 #endif
 #else
diff --git a/arch/x86/include/asm/elf.h b/arch/x86/include/asm/elf.h
index 2bf67c0..141c561 100644
--- a/arch/x86/include/asm/elf.h
+++ b/arch/x86/include/asm/elf.h
@@ -78,7 +78,7 @@ typedef struct user_fxsr_struct elf_fpxregset_t;
 #ifdef CONFIG_X86_64
 extern unsigned int vdso64_enabled;
 #endif
-#if defined(CONFIG_X86_32) || defined(CONFIG_COMPAT)
+#if defined(CONFIG_X86_32) || defined(CONFIG_IA32_EMULATION)
 extern unsigned int vdso32_enabled;
 #endif
 
-- 
2.1.0

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
Please read the FAQ at  http://www.tux.org/lkml/

Back to linux.kernel | Previous | Next — Previous in thread | Find similar | Unroll thread


Thread

[PATCH 00/12] x86/compat: Separate X32 from 32-bit compat Brian Gerst <brgerst@gmail.com> - 2015-06-22 14:00 +0200
  [PATCH 07/12] x86/compat: get_gate_vma should check for both 32-bit compat and x32 Brian Gerst <brgerst@gmail.com> - 2015-06-22 14:00 +0200
  [PATCH 08/12] x86/compat/perf: perf_callchain_user32 is only for 32-bit compat Brian Gerst <brgerst@gmail.com> - 2015-06-22 14:00 +0200
  [PATCH 06/12] x86/compat: Don't build 32-bit vdso if not needed. Brian Gerst <brgerst@gmail.com> - 2015-06-22 14:00 +0200

csiph-web