Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752275AbaGKDjQ (ORCPT ); Thu, 10 Jul 2014 23:39:16 -0400 Received: from mx1.redhat.com ([209.132.183.28]:28006 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752144AbaGKDjO (ORCPT ); Thu, 10 Jul 2014 23:39:14 -0400 From: Richard Guy Briggs To: linux-audit@redhat.com, linux-kernel@vger.kernel.org Cc: Richard Guy Briggs , Paul Moore , Eric Paris , Al Viro , Will Drewry , "H. Peter Anvin" Subject: [PATCH 3/3] [RFC] Revert "x86: remove the x32 syscall bitmask from syscall_get_nr()" Date: Thu, 10 Jul 2014 23:38:14 -0400 Message-Id: <4f70164ca972f0c7c81db693eeefb28b7460bd84.1405023592.git.rgb@redhat.com> In-Reply-To: References: In-Reply-To: References: Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This reverts commit 8b4b9f27e57584f3d90e0bb84cf800ad81cfe3a1. which broke audit and potentially other users of syscall_get_nr() which depend on that call as named without being overloaded by architecture bits. This patch along with seccomp: give BPF x32 bit when restoring x32 filter will satisfy other regular users of syscall_get_nr() and syscall_get_arch() without changing the seccomp interface to BPF. Cc: Paul Moore Cc: Eric Paris Cc: Al Viro Cc: Will Drewry Cc: H. Peter Anvin Signed-off-by: Richard Guy Briggs Link: http://lkml.kernel.org/r/cover.1405023592.git.rgb@redhat.com --- arch/x86/include/asm/syscall.h | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/x86/include/asm/syscall.h b/arch/x86/include/asm/syscall.h index d58b6be..8c1bb2b 100644 --- a/arch/x86/include/asm/syscall.h +++ b/arch/x86/include/asm/syscall.h @@ -30,13 +30,13 @@ extern const sys_call_ptr_t sys_call_table[]; */ static inline int syscall_get_nr(struct task_struct *task, struct pt_regs *regs) { - return regs->orig_ax; + return regs->orig_ax & __SYSCALL_MASK; } static inline void syscall_rollback(struct task_struct *task, struct pt_regs *regs) { - regs->ax = regs->orig_ax; + regs->ax = regs->orig_ax & __SYSCALL_MASK; } static inline long syscall_get_error(struct task_struct *task, -- 1.7.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/