Received: by 2002:a25:e7d8:0:0:0:0:0 with SMTP id e207csp2102950ybh; Fri, 13 Mar 2020 12:54:23 -0700 (PDT) X-Google-Smtp-Source: ADFU+vsXgYI3XGIxv/tRPDEZSOPyRLH3lv3FaHrjTP8A4cZP7Rx6F7rmWzJm/4rCcyGwUIR1wd6y X-Received: by 2002:a9d:19a6:: with SMTP id k35mr11934669otk.13.1584129262991; Fri, 13 Mar 2020 12:54:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1584129262; cv=none; d=google.com; s=arc-20160816; b=0WT3iHjsWI4Zpnv5/+kSbzo7d5P+bIcYsvuPEE1ukWx7XTcXFYnfgdL8jeU11JhjxK sGDs6zSf0AcKT4W1kmtX8p2Zgf9s9E8+UU5JmfyYvQUUKQ5XP1TYnH4JtmRlFBLkLbdz BjBmqYIiwRvdS0lmfRfHJROsiiV6AeGU7M2NRTzHA7+hJGpR8u2/6V3BMHGONdNbzjbe aFVVJTT8a61pRWZ5T3KndRpXs1tnqr/E4cWCKZ/z3fnq2aMqQHEVzHutRAgTV70hJu8v BGXAckp6AsmwEEMJgcsLZExkrRR6TjaSeGJDHercBY6o9myFmg+bBApLmpIinmTsHgWL RtCw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=eDh+B8ezDyS7P1M5dHGOp61NFK6nBb9D6/mMiEKkThY=; b=ke/6QK7LGQu6nM1v4gyw7gBVrtJrPXfwXT4+jP4xsmqBC6AVUCjs3bB3IiyBNHySAy /ZVtdJ+E/kQY7iqvHu3UWUxAYdxqgT4FBKgd+DLzbBBFPryIKz2+kPn+Gi2ZijRrdgtc sfWKL3rQ0ZcU+TFb8eX4UzMRfBB4vwxGbpED27XvACO2WozX+qg4gDuqH1rIQ90MohPI pOKAJJvLKZNd6vgewl9LQFr6vmVe4q7DtayER++bGSpO38Q3rZupuhOxXcngGQg1bFhu va4qBNmwRvOIVtwOwNjTpvFIKI41FUX25btqsgm2NR8NeaX2+T+t88TkL/VhvLzpQRJ/ 6JeA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=gv1TwQ4W; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id n2si5299971otf.117.2020.03.13.12.54.09; Fri, 13 Mar 2020 12:54:22 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=gv1TwQ4W; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727089AbgCMTwK (ORCPT + 99 others); Fri, 13 Mar 2020 15:52:10 -0400 Received: from mail-qk1-f195.google.com ([209.85.222.195]:37630 "EHLO mail-qk1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726526AbgCMTwK (ORCPT ); Fri, 13 Mar 2020 15:52:10 -0400 Received: by mail-qk1-f195.google.com with SMTP id z25so9809639qkj.4 for ; Fri, 13 Mar 2020 12:52:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=eDh+B8ezDyS7P1M5dHGOp61NFK6nBb9D6/mMiEKkThY=; b=gv1TwQ4WfMGa0bIyP7sheC/vrqt7SmVT1bAgS4wl30b5vBvEg9G3tI7pkK36AuTy8Z 8QdwdpLpxEsdUYUxQKW7Az8sxO/GoYbmEt4zox1v7PYz+59BUXX+336Ut1INvj5nt4mw vwt7SVKxmTniNlRVn56RVaL1ON8x5O/GQiawHzXT1ddchhX439SfxNaEbQ9bGYNA6zP7 qnN4PTyUKvqmfSDb1BwcxA+taeI+e6m+pFzSykjzednNa5L1A8/ZuDt9vSxq8YqfBQpp 0UWOB1V6pwaBuzCkwzvjWVyectvj6SDqqYSzFp49X65rTjO6yOt8s38TmWoEYt2f+DHd +Y/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=eDh+B8ezDyS7P1M5dHGOp61NFK6nBb9D6/mMiEKkThY=; b=RvpAbtG4RwME5JdvLcEqYH/s6taFWolxeZ7doi943aS6s/ljAXObmWNViFJcNH3qf/ GvX5MzQZgTaWfaJfFb8JNMl2O5h1+O9sz5FMZFBSkOeOO93bdHq4NDc/g1Whp8xeNDQE oCevr4WhcIk3Qp6wLEI++Zl+o82S0zZ4g1fCqnj550Ihs/6ntFZnh2rXqTinox2Esdqr DZutHEetQend7LLGMe+6DANwkhyDHBAX7ExWYnyRTDaDCXxQ0Zi/TJCxl2QNTAr+i/2n We28iLndt0tfTG2dcgr4EUtbPqBVlOgHLKTvnNH5QjfeCsGh7yeir7qaqX/EXhUDZFnz 5F+w== X-Gm-Message-State: ANhLgQ3QHgEXjcUqgd25qR27ocgW48IiEwRIlQrGhLDoIDMf+7Pl+dTR 0buA9SbuSsnfRjxr8rRdrziuYnw= X-Received: by 2002:a37:6357:: with SMTP id x84mr12291892qkb.490.1584129128966; Fri, 13 Mar 2020 12:52:08 -0700 (PDT) Received: from localhost.localdomain (174-084-153-250.res.spectrum.com. [174.84.153.250]) by smtp.gmail.com with ESMTPSA id i28sm31475599qtc.57.2020.03.13.12.52.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 13 Mar 2020 12:52:08 -0700 (PDT) From: Brian Gerst To: linux-kernel@vger.kernel.org, x86@kernel.org Cc: Thomas Gleixner , Ingo Molnar , Borislav Petkov , "H . Peter Anvin" , Andy Lutomirski , Dominik Brodowski , Brian Gerst Subject: [PATCH v4 00/18] x86: syscall wrapper cleanups Date: Fri, 13 Mar 2020 15:51:26 -0400 Message-Id: <20200313195144.164260-1-brgerst@gmail.com> X-Mailer: git-send-email 2.24.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This patch series cleans up the x86 syscall wrapper code and converts the 32-bit native kernel over to pt_regs based syscalls. This makes the 32-bit syscall interface consistent with 64-bit, and a bit more effecient by not blindly pushing all 6 potential arguments onto the stack. Changes since v3: - Addressed feedback from v3 - Split the X32 syscall table into its own file - Move the ABI prefix from the syscall table to the wrapper macros - Additional cleanups - Changed series title due to broader scope Changes since v2: - Moved adding the [compat_]sys_ prefix to the ABI-level macros Changes since v1: - Split patch 1 into multiple patches - Updated comments and patch notes to clarify changes Brian Gerst (18): x86, syscalls: Refactor SYSCALL_DEFINEx macros x86, syscalls: Refactor SYSCALL_DEFINE0 macros x86, syscalls: Refactor COND_SYSCALL macros x86, syscalls: Refactor SYS_NI macros x86-64: Use syscall wrappers for x32_rt_sigreturn x86-64: Move sys_ni_syscall stub to common.c x86-64: Split X32 syscall table into its own file x86: Move max syscall number calculation to syscallhdr.sh x86-64: Remove ptregs qualifier from syscall table x86: Remove syscall qualifier support x86-64: Add __SYSCALL_COMMON() x86: Remove ABI prefixes from functions in syscall tables x86: Clean up syscall_32.tbl x86, syscalls: Rename 32-bit specific syscalls x86: Use IA32-specific wrappers for syscalls taking 64-bit arguments x86-32: Enable pt_regs based syscalls x86: Drop asmlinkage from syscalls x86: Remove unneeded includes arch/x86/Kconfig | 2 +- arch/x86/entry/Makefile | 1 + arch/x86/entry/common.c | 18 +- arch/x86/entry/syscall_32.c | 19 +- arch/x86/entry/syscall_64.c | 39 +- arch/x86/entry/syscall_x32.c | 29 + arch/x86/entry/syscalls/syscall_32.tbl | 818 ++++++++++---------- arch/x86/entry/syscalls/syscall_64.tbl | 740 +++++++++--------- arch/x86/entry/syscalls/syscallhdr.sh | 7 + arch/x86/entry/syscalls/syscalltbl.sh | 44 +- arch/x86/entry/vdso/vdso32/vclock_gettime.c | 1 + arch/x86/ia32/Makefile | 2 +- arch/x86/include/asm/sighandling.h | 5 - arch/x86/include/asm/syscall.h | 11 +- arch/x86/include/asm/syscall_wrapper.h | 287 +++---- arch/x86/include/asm/syscalls.h | 34 - arch/x86/include/asm/unistd.h | 7 + arch/x86/kernel/Makefile | 2 + arch/x86/kernel/asm-offsets_32.c | 9 - arch/x86/kernel/asm-offsets_64.c | 36 - arch/x86/kernel/ldt.c | 1 - arch/x86/kernel/process.c | 1 - arch/x86/kernel/process_32.c | 1 - arch/x86/kernel/process_64.c | 1 - arch/x86/kernel/signal.c | 4 +- arch/x86/{ia32 => kernel}/sys_ia32.c | 143 ++-- arch/x86/kernel/sys_x86_64.c | 1 - arch/x86/um/Makefile | 1 + arch/x86/um/sys_call_table_32.c | 6 +- arch/x86/um/sys_call_table_64.c | 9 +- arch/x86/um/user-offsets.c | 15 - 31 files changed, 1086 insertions(+), 1208 deletions(-) create mode 100644 arch/x86/entry/syscall_x32.c rename arch/x86/{ia32 => kernel}/sys_ia32.c (78%) -- 2.24.1