From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dmitry Safonov Subject: [RFC-resend 0/2] compat: in_compat_syscall() differs on x86 Date: Fri, 12 Oct 2018 14:42:51 +0100 Message-ID: <20181012134253.23266-1-dima@arista.com> Return-path: Sender: netdev-owner@vger.kernel.org To: linux-kernel@vger.kernel.org Cc: Dmitry Safonov <0x7f454c46@gmail.com>, Dmitry Safonov , Ard Biesheuvel , Andy Lutomirsky , "David S. Miller" , Herbert Xu , "H. Peter Anvin" , Ingo Molnar , John Stultz , "Kirill A. Shutemov" , Oleg Nesterov , Steffen Klassert , Stephen Boyd , Steven Rostedt , Thomas Gleixner , x86@kernel.org, linux-efi@vger.kernel.org, netdev@vger.kernel.org List-Id: linux-efi@vger.kernel.org Reading xfrm (ipsec) code I've found such code: : #ifdef CONFIG_COMPAT : if (in_compat_syscall()) : return -EOPNOTSUPP; : #endif While I can read that it's false on native i386, it's a bit misleading and in result it's better to introduce a helper for that. Grepping other code, I've found that there are already such helpers. And the uniq behavior of in_compat_syscall() on x86 is disturbing. Adjusting it to generic with the following.. (on the first non-resend RFC I managed to forget Cc'ing Andy.. sorry about that, was sure I did add him). Cc: Ard Biesheuvel Cc: Andy Lutomirsky Cc: "David S. Miller" Cc: Herbert Xu Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: John Stultz Cc: "Kirill A. Shutemov" Cc: Oleg Nesterov Cc: Steffen Klassert Cc: Stephen Boyd Cc: Steven Rostedt Cc: Thomas Gleixner Cc: x86@kernel.org Cc: linux-efi@vger.kernel.org Cc: netdev@vger.kernel.org Cc: Dmitry Safonov <0x7f454c46@gmail.com> Dmitry Safonov (2): x86/compat: Adjust in_compat_syscall() to generic code under !COMPAT compat: Cleanup in_compat_syscall() callers arch/x86/include/asm/compat.h | 9 ++++++++- arch/x86/include/asm/ftrace.h | 4 +--- arch/x86/kernel/process_64.c | 4 ++-- arch/x86/kernel/sys_x86_64.c | 11 ++++++----- arch/x86/mm/hugetlbpage.c | 4 ++-- arch/x86/mm/mmap.c | 2 +- drivers/firmware/efi/efivars.c | 16 ++++------------ include/linux/compat.h | 4 ++-- kernel/time/time.c | 2 +- net/xfrm/xfrm_state.c | 2 -- net/xfrm/xfrm_user.c | 2 -- 11 files changed, 27 insertions(+), 33 deletions(-) -- 2.13.6