public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] x86/asm/entry/64: Minor cleanup of conditional compilation
@ 2015-09-05 20:53 Nikolay Borisov
  2015-09-06  6:03 ` H. Peter Anvin
  0 siblings, 1 reply; 2+ messages in thread
From: Nikolay Borisov @ 2015-09-05 20:53 UTC (permalink / raw)
  To: mingo; +Cc: hpa, dvlasenk, luto, linux-kernel, bp, Nikolay Borisov

The entry_SYSCALL_64_fastpath was checking the value of __SYSCALL_MASK,
which in turn was being set in arch/x86/include/asm/unistd.h depending on
whether CONFIG_X86_X32_ABI was set or not. This made the intention a bit
cryptic.

Juggle the code around so that the conditional compilation depends on
the value of CONFIG_X86_X32_ABI

Signed-off-by: Nikolay Borisov <nikolay.b.borisov@gmail.com>
---

Sending v2 as I had forgotten to add my signed-off-by line.

 arch/x86/entry/entry_64.S | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/x86/entry/entry_64.S b/arch/x86/entry/entry_64.S
index 8cb3e43..b0177f9 100644
--- a/arch/x86/entry/entry_64.S
+++ b/arch/x86/entry/entry_64.S
@@ -175,11 +175,11 @@ GLOBAL(entry_SYSCALL_64_after_swapgs)
 	testl	$_TIF_WORK_SYSCALL_ENTRY, ASM_THREAD_INFO(TI_flags, %rsp, SIZEOF_PTREGS)
 	jnz	tracesys
 entry_SYSCALL_64_fastpath:
-#if __SYSCALL_MASK == ~0
-	cmpq	$__NR_syscall_max, %rax
-#else
+#ifdef CONFIG_X86_X32_ABI
 	andl	$__SYSCALL_MASK, %eax
 	cmpl	$__NR_syscall_max, %eax
+#else
+	cmpq	$__NR_syscall_max, %rax
 #endif
 	ja	1f				/* return -ENOSYS (already in pt_regs->ax) */
 	movq	%r10, %rcx
-- 
2.1.4


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

* Re: [PATCH v2] x86/asm/entry/64: Minor cleanup of conditional compilation
  2015-09-05 20:53 [PATCH v2] x86/asm/entry/64: Minor cleanup of conditional compilation Nikolay Borisov
@ 2015-09-06  6:03 ` H. Peter Anvin
  0 siblings, 0 replies; 2+ messages in thread
From: H. Peter Anvin @ 2015-09-06  6:03 UTC (permalink / raw)
  To: Nikolay Borisov, mingo; +Cc: dvlasenk, luto, linux-kernel, bp

On 09/05/15 13:53, Nikolay Borisov wrote:
> The entry_SYSCALL_64_fastpath was checking the value of __SYSCALL_MASK,
> which in turn was being set in arch/x86/include/asm/unistd.h depending on
> whether CONFIG_X86_X32_ABI was set or not. This made the intention a bit
> cryptic.

On the contrary: that instruction can be omitted if and only if the 
value of the mask is all 1's; it doesn't matter how the mask is set.  So 
you just turned a local constraint into a global constraint.  This is 
both unnecessarily confusing and opens the risk for bugs later.

If you feel the need, you could submit a patch to add a comment, but 
this version is:

Nacked-by: H. Peter Anvin <hpa@zytor.com>


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

end of thread, other threads:[~2015-09-06  6:03 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-09-05 20:53 [PATCH v2] x86/asm/entry/64: Minor cleanup of conditional compilation Nikolay Borisov
2015-09-06  6:03 ` H. Peter Anvin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox