From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754521AbcBZOfd (ORCPT ); Fri, 26 Feb 2016 09:35:33 -0500 Received: from mail-bn1on0088.outbound.protection.outlook.com ([157.56.110.88]:3296 "EHLO na01-bn1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753853AbcBZOf1 (ORCPT ); Fri, 26 Feb 2016 09:35:27 -0500 X-Greylist: delayed 158403 seconds by postgrey-1.27 at vger.kernel.org; Fri, 26 Feb 2016 09:35:26 EST Authentication-Results: de.ibm.com; dkim=none (message not signed) header.d=none;de.ibm.com; dmarc=none action=none header.from=caviumnetworks.com; From: Yury Norov To: , , , , , , , CC: , , , , , , , , , Yury Norov Subject: [PATCH v3 0/5] all: s390: make compat wrappers the generic solution Date: Fri, 26 Feb 2016 17:34:50 +0300 Message-ID: <1456497295-22991-1-git-send-email-ynorov@caviumnetworks.com> X-Mailer: git-send-email 2.5.0 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [95.143.213.121] X-ClientProxiedBy: DB5PR02CA0002.eurprd02.prod.outlook.com (25.161.237.12) To BY2PR07MB615.namprd07.prod.outlook.com (10.141.222.150) X-Microsoft-Exchange-Diagnostics: 1;BY2PR07MB615;2:dF7cYSoIZ9i9iKSeUeozkf4yf2KpfYqgwY9TSZguMRShQTcKLWedh5XPQNqEwA/+ACmzF175PUXmnYeY+ptqruyxZrS6lVbkebLwpnc7TBWRQcsDlw9hJ7T7uApbrizWUWF0smEriBTYcQp0mgTSkg==;3:gKgN6Z6wRgJxbHPkai3x6mBH+p1CflOCX/qFUUK+okEyzLvo7WBbU60xktaMPtvAEcpwZ3JtQf7LwUJyrfYBm9EsPpgUkoS9VsoJ3wvZAZ4G40TNPhUvzT7sPj7Rk5X+;25:wZCXnpm13v2Hh1tQPJY01jfNb3BLi96H9DLCbYW+3NkyoiTALOBvZVAXYWp8OpRH4Udk62BaXsDiEYYh/wiKR3ijqlXaOznriD7GlJPyY4qAAeDOVVyoFCgWzEAxUfp9cFvuTXR/5sE3bkdZa21/runQrJ52oPxWVEZJjm2VHlDiYG6J5Thn9Xu4C3ywQ3B6u8SYvrN8VCXfz2Q8TYYI/EDoAob4NAsfbJj4ylxmPEgQML70MklpT2aOq0SNMeP6h6bcWChhHAC9k6+Tm8XvUmZUWF7pFsKwFReF7JRbT671dATN2Kzyy6C2RcPY+EhMyAFlzUN/O4/bOYrW38w9HQ== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY2PR07MB615; X-MS-Office365-Filtering-Correlation-Id: add0be57-0a27-42dc-4ccc-08d33eba0f61 X-Microsoft-Exchange-Diagnostics: 1;BY2PR07MB615;20:2zao2O9JHD6rZI+PyI/jq4/l8erWM09QeqzHnQ2qceeRjJYaHsJ+ia9huaTq8OinIxQmG3Xjk5oTfmcO67g8WsujgRexatY3dAJh6SgEI1ylYWgMTLAgQg16lZsDJaOVXX5YHGTg5zxeydmhYOytbMUC79/GfgX57EqVCN+u+0hS6SBo0uKJ0hRa6ty7HMyL7OpjXweE/++Q8ySYIcJncsWn19f/tux7N0mOahzXLRBsYeh83WqwhiiLBI4G71B9o+/JXGhefS0I+g4ShvMmTZVrUrFSLJjc/VganR4qnUJSQs1wWxuNRGEXjGglIBMS+TGR2YTnPTs/hemn/D7BIRanJqkEQLdxjZmkx3AgKdmaEaPrzPbWSnXiqV63baY7ziG2Y8/fjr3DLye/1U6HRrsdrnakYPQiA38mCLKVwqBQHwaDw8wGwfFCsGIIHRc2v+NXzogoTpqK2AYM3FcjJvH4VDRnl7/VQwXezZIa65lVQeDFHa5Qz4W6QZk/jR5ObeGPwh4q+eaRoGSVHejXc9BaoDf6O+q2Ri8XvTvD47J0aYpJ58SBG9xesTv1PaoG5pn4SzJV1bQISHEU07sbxLqig4Zj0wouudnaInCp9fY= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001);SRVR:BY2PR07MB615;BCL:0;PCL:0;RULEID:;SRVR:BY2PR07MB615; X-Microsoft-Exchange-Diagnostics: 1;BY2PR07MB615;4:67+BmOQktHxFX0ChGNlxzKiIUa/ZiFGB8GXChTNFK6xWaf1dQMS+q83lkZb40KXGTK93x+bRrRmgQOaNkfldhmgpcrr2ADnw785bVl82HPFExr60sRhAKmtFKj6tv7iChzmteqGS21GVf7bKuIn3qXIdXZjSSXOR5nvw649m3hDg0RRiF3oWWHUV0WOfqHflmX0jHhrrM0LuaV+3OI8SOLn3UEUeaF7wRRTJqQyt8gl+sysjFTovs36qYX/RnssPj2Y6/eRIkfevhte9FxBvUuzGpPjERzVbOtENTS1xjRGM5/tfUMzJl6CsxUJqZ+iMEwB94TDLoO7b9a8nGJ121b2ahxCgP2eSJqaGYb94QIOkxzKVWf21RAH2mPRqN+K7 X-Forefront-PRVS: 0864A36BBF X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6069001)(6009001)(4001430100002)(36756003)(76506005)(5003940100001)(5004730100002)(50466002)(189998001)(5001960100002)(107886002)(15975445007)(33646002)(77096005)(1096002)(66066001)(6116002)(4326007)(48376002)(586003)(3846002)(5001770100001)(87976001)(42186005)(2906002)(122386002)(5008740100001)(40100003)(50986999)(92566002)(19580395003)(19580405001)(50226001)(47776003)(229853001)(2201001)(2101003);DIR:OUT;SFP:1101;SCL:1;SRVR:BY2PR07MB615;H:localhost;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BY2PR07MB615;23:anPjOHznvg/C7qBvgJ5RltjiC6PYNUbGuBm01DKrfa?= =?us-ascii?Q?3rMPPrId2EH1nXG5WHqzl0g7pIWmHNGrKnbkYkttnMuEeNlLDWk81OMprs2L?= =?us-ascii?Q?itVcK5HYW9P4VAttQrygnk6/rpkNvAcVzZw8yZARI1bZpdIzVGDxc74GsISg?= =?us-ascii?Q?XMhBcjKSJpIsfrrwchzfQ6KHQJISq+cNA5wefxRFurcV+4U7tmGZBPQnRHwG?= =?us-ascii?Q?7d08JldJIvMUFg+kU1+i7Gbuxuee+0u41cNxuh3nVbbvIZP8ycJgOEh+rc5j?= =?us-ascii?Q?u0T2Ww/KYWwCb6am7qkUNmW8ugS/e7hLkedEHt419yhNF8xcfeA7CZH05Z1v?= =?us-ascii?Q?47QfdMrGIAaEfyhQoKwn3HjdkHX3/SD4WM8bmCHXP2ljyCo434RD2AxNSJVn?= =?us-ascii?Q?YgMskidUqVvR+guXZmqkAl15q4+R6YVn1BRzgaLVAuvTiMAnBabuOJeqH2fG?= =?us-ascii?Q?3bv+UMH0U2oK9Re5WCzxpk2JG2OF8LgHgWHSvUPOBD6bhHkZQGshO2HoUcGT?= =?us-ascii?Q?yEeQy45Oc3XhNMtLYmx4wP751OS9TjOSwExVpPS6rsiqqeUuaScKcXhs6Pqr?= =?us-ascii?Q?ro636RD94B3OcM6GmnSQzROchNyWeFu0uXypEQRfGareoSmww4YsXUvCQNBS?= =?us-ascii?Q?DNsLefAxl2xnjG3moPORqwmXj+6sMOx49Yq3L93Ls9Y/VfyfT9QPWcz2IPWI?= =?us-ascii?Q?exGIuvE7wkarCutumZDMmbGdtBWPz7fY0fn9A7fh5Dgb66ToctjJHZnJJLvg?= =?us-ascii?Q?e5BlUfoGFJJgERKkE9zKM5QvaNfl6KDKueAH5RVwdLRpF5CD7hAJY7cA+2XM?= =?us-ascii?Q?gUGioWUJ5rx+R4gc9BIhIGXmAu8q50V0itdpjuBHH81/RQ5OUcNJFhJ0Sz7S?= =?us-ascii?Q?kVk+ygy9+bypVTYjYPxFjRgM/C/4iDPxk6oKLoObj7CQpgtymrt/ih0A06Yd?= =?us-ascii?Q?Z5wwkjVaX9a0DmRz/xMB3fS88p0CVO/mH1mylzo+MjN4yUU4bvqHHcYESO4t?= =?us-ascii?Q?eJaHPLUPJBhOIIuofZ0uRmBDXC6jGxDfa1Nrr4G+Ch8RtDK9DDW/8FWyXrj0?= =?us-ascii?Q?jFbvw=3D?= X-Microsoft-Exchange-Diagnostics: 1;BY2PR07MB615;5:DxZT+AH6G7lb3yoe6x6DpehP+j5PsX+idJPLphln4Bm8YDjnTih29KfUTThDMUGq4dY2AJ30j8VV44Kp08ajUd7/fGhWOuvGTx6inI5FveUAve+lbqiMIxOglhB2aAS1Uhaoh0T11e7U5Xq9Tkg/8w==;24:BwsEvsP6TsqSxjyNjDEKfAxwHrDUpaQP/nJs9Pu8fF6IivOEGbkQ/akoeQaEu9ROoaY0HeD5bzLW9WEnlvlXZoWLFitAmDpXPU2bU0e35y4= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Feb 2016 14:35:22.7558 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR07MB615 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The problem that makes us use wrappers is that some compat architectures allows user code to access top halves of registers. This is not a problem for syscalls that are already handled by compat code, or for that who has types of the same size in kernel and userspace. In case of s390 and lp64/ilp32 the problem is in pointer types, long, unsigned long. S390 folks already have the solution for it. In this patchset, it is turned to be general, as arm64/ilp32 needs it too. This patchset is created as the part of the work of enabling arm64 with ILP32 user mode. See details here: http://thread.gmane.org/gmane.linux.kernel/2126946 Acked-by: Heiko Carstens v2: This is the implementation of one of two possible approaches. First one defines new syscall handler declaration macro, that creates both compat and non-compat handlers, see [1]. This one declares all wrappers in separated file kernel/compat_wrapper.c v3: - move 2 s390-related wrappers from kernel/compat_wrappers.h to arch/s390/kernel/compat_linux.c - comments extended Build-tested on s390. [1] http://www.spinics.net/lists/linux-s390/msg11593.html Yury Norov (5): all: syscall wrappers: add documentation all: introduce COMPAT_WRAPPER option and enable it for s390 all: s390: move wrapper infrastructure to generic headers all: s390: move compat_wrappers.c from arch/s390/kernel to kernel/ all: wrap needed syscalls in generic unistd Documentation/adding-syscalls.txt | 32 +++++ arch/Kconfig | 4 + arch/s390/Kconfig | 1 + arch/s390/include/asm/compat.h | 17 ++- arch/s390/kernel/Makefile | 2 +- arch/s390/kernel/compat_wrapper.c | 180 ------------------------ include/linux/compat.h | 278 ++++++++++++++++++++++++++++++++++++++ include/linux/syscalls.h | 57 +------- include/linux/syscalls_structs.h | 60 ++++++++ include/uapi/asm-generic/unistd.h | 231 +++++++++++++++---------------- kernel/Makefile | 1 + kernel/compat_wrapper.c | 170 +++++++++++++++++++++++ 12 files changed, 680 insertions(+), 353 deletions(-) delete mode 100644 arch/s390/kernel/compat_wrapper.c create mode 100644 include/linux/syscalls_structs.h create mode 100644 kernel/compat_wrapper.c -- 2.5.0