From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752618AbcEUQGI (ORCPT ); Sat, 21 May 2016 12:06:08 -0400 Received: from mail-yw0-f194.google.com ([209.85.161.194]:33015 "EHLO mail-yw0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752311AbcEUQE7 (ORCPT ); Sat, 21 May 2016 12:04:59 -0400 From: Brian Gerst To: x86@kernel.org, linux-kernel@vger.kernel.org Cc: Ingo Molnar , "H. Peter Anvin" , Denys Vlasenko , Andy Lutomirski , Borislav Petkov , Thomas Gleixner Subject: [PATCH 1/4] x86: Save return value from kernel_thread Date: Sat, 21 May 2016 12:04:48 -0400 Message-Id: <1463846691-18498-2-git-send-email-brgerst@gmail.com> X-Mailer: git-send-email 2.5.5 In-Reply-To: <1463846691-18498-1-git-send-email-brgerst@gmail.com> References: <1463846691-18498-1-git-send-email-brgerst@gmail.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Kernel threads should always return zero on success after calling do_execve(). The two existing cases in the kernel (kernel_init() and call_usermodehelper_exec_async()) correctly do this. Save a few bytes by storing EAX/RAX instead of an immediate zero. Also fix the 64-bit case which should save the full 64-bits. Signed-off-by: Brian Gerst --- arch/x86/entry/entry_32.S | 2 +- arch/x86/entry/entry_64.S | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/x86/entry/entry_32.S b/arch/x86/entry/entry_32.S index 983e5d3..ee6fea0 100644 --- a/arch/x86/entry/entry_32.S +++ b/arch/x86/entry/entry_32.S @@ -221,7 +221,7 @@ ENTRY(ret_from_kernel_thread) popl %eax movl PT_EBP(%esp), %eax call *PT_EBX(%esp) - movl $0, PT_EAX(%esp) + movl %eax, PT_EAX(%esp) /* * Kernel threads return to userspace as if returning from a syscall. diff --git a/arch/x86/entry/entry_64.S b/arch/x86/entry/entry_64.S index 9ee0da1..ab9f8c8 100644 --- a/arch/x86/entry/entry_64.S +++ b/arch/x86/entry/entry_64.S @@ -387,7 +387,7 @@ ENTRY(ret_from_fork) */ movq RBP(%rsp), %rdi call *RBX(%rsp) - movl $0, RAX(%rsp) + movq %rax, RAX(%rsp) /* * Fall through as though we're exiting a syscall. This makes a -- 2.5.5