Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932077AbdCTQeW (ORCPT ); Mon, 20 Mar 2017 12:34:22 -0400 Received: from terminus.zytor.com ([65.50.211.136]:55864 "EHLO terminus.zytor.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755268AbdCTQeR (ORCPT ); Mon, 20 Mar 2017 12:34:17 -0400 Date: Mon, 20 Mar 2017 09:33:15 -0700 From: tip-bot for Kyle Huey Message-ID: Cc: nadav.amit@gmail.com, grzegorz.andrejczuk@intel.com, dave.hansen@linux.intel.com, andi@firstfloor.org, pbonzini@redhat.com, viro@zeniv.linux.org.uk, robert@ocallahan.org, hpa@zytor.com, bp@suse.de, rafael.j.wysocki@intel.com, dmatlack@google.com, peterz@infradead.org, luto@kernel.org, boris.ostrovsky@oracle.com, me@kylehuey.com, shuah@kernel.org, richard@nod.at, linux-kernel@vger.kernel.org, len.brown@intel.com, khuey@kylehuey.com, rkrcmar@redhat.com, tglx@linutronix.de, dsafonov@virtuozzo.com, jdike@addtoit.com, mingo@kernel.org Reply-To: rafael.j.wysocki@intel.com, bp@suse.de, peterz@infradead.org, dmatlack@google.com, robert@ocallahan.org, viro@zeniv.linux.org.uk, hpa@zytor.com, andi@firstfloor.org, nadav.amit@gmail.com, dave.hansen@linux.intel.com, grzegorz.andrejczuk@intel.com, pbonzini@redhat.com, dsafonov@virtuozzo.com, tglx@linutronix.de, mingo@kernel.org, jdike@addtoit.com, rkrcmar@redhat.com, khuey@kylehuey.com, richard@nod.at, len.brown@intel.com, linux-kernel@vger.kernel.org, me@kylehuey.com, boris.ostrovsky@oracle.com, luto@kernel.org, shuah@kernel.org In-Reply-To: <20170320081628.18952-6-khuey@kylehuey.com> References: <20170320081628.18952-6-khuey@kylehuey.com> To: linux-tip-commits@vger.kernel.org Subject: [tip:x86/process] x86/arch_prctl: Add do_arch_prctl_common() Git-Commit-ID: b0b9b014016d16ca7a192da986aa8ebae21bb995 X-Mailer: tip-git-log-daemon Robot-ID: Robot-Unsubscribe: Contact to get blacklisted from these emails MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8 Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3252 Lines: 93 Commit-ID: b0b9b014016d16ca7a192da986aa8ebae21bb995 Gitweb: http://git.kernel.org/tip/b0b9b014016d16ca7a192da986aa8ebae21bb995 Author: Kyle Huey AuthorDate: Mon, 20 Mar 2017 01:16:23 -0700 Committer: Thomas Gleixner CommitDate: Mon, 20 Mar 2017 16:10:33 +0100 x86/arch_prctl: Add do_arch_prctl_common() Add do_arch_prctl_common() to handle arch_prctls that are not specific to 64 bit mode. Call it from the syscall entry point, but not any of the other callsites in the kernel, which all want one of the existing 64 bit only arch_prctls. Signed-off-by: Kyle Huey Cc: Grzegorz Andrejczuk Cc: kvm@vger.kernel.org Cc: Radim Krčmář Cc: Peter Zijlstra Cc: Dave Hansen Cc: Andi Kleen Cc: linux-kselftest@vger.kernel.org Cc: Nadav Amit Cc: Robert O'Callahan Cc: Richard Weinberger Cc: "Rafael J. Wysocki" Cc: Borislav Petkov Cc: Andy Lutomirski Cc: Len Brown Cc: Shuah Khan Cc: user-mode-linux-devel@lists.sourceforge.net Cc: Jeff Dike Cc: Alexander Viro Cc: user-mode-linux-user@lists.sourceforge.net Cc: David Matlack Cc: Boris Ostrovsky Cc: Dmitry Safonov Cc: linux-fsdevel@vger.kernel.org Cc: Paolo Bonzini Link: http://lkml.kernel.org/r/20170320081628.18952-6-khuey@kylehuey.com Signed-off-by: Thomas Gleixner --- arch/x86/include/asm/proto.h | 3 +++ arch/x86/kernel/process.c | 6 ++++++ arch/x86/kernel/process_64.c | 8 +++++++- 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/arch/x86/include/asm/proto.h b/arch/x86/include/asm/proto.h index 4e276f6..8d3964f 100644 --- a/arch/x86/include/asm/proto.h +++ b/arch/x86/include/asm/proto.h @@ -31,4 +31,7 @@ void x86_report_nx(void); extern int reboot_force; +long do_arch_prctl_common(struct task_struct *task, int option, + unsigned long cpuid_enabled); + #endif /* _ASM_X86_PROTO_H */ diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c index 366db77..b12e95e 100644 --- a/arch/x86/kernel/process.c +++ b/arch/x86/kernel/process.c @@ -545,3 +545,9 @@ out: put_task_stack(p); return ret; } + +long do_arch_prctl_common(struct task_struct *task, int option, + unsigned long cpuid_enabled) +{ + return -EINVAL; +} diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c index e37f764..d81b0a6 100644 --- a/arch/x86/kernel/process_64.c +++ b/arch/x86/kernel/process_64.c @@ -626,7 +626,13 @@ long do_arch_prctl_64(struct task_struct *task, int option, unsigned long arg2) SYSCALL_DEFINE2(arch_prctl, int, option, unsigned long, arg2) { - return do_arch_prctl_64(current, option, arg2); + long ret; + + ret = do_arch_prctl_64(current, option, arg2); + if (ret == -EINVAL) + ret = do_arch_prctl_common(current, option, arg2); + + return ret; } unsigned long KSTK_ESP(struct task_struct *task)