From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758028AbcAYROE (ORCPT ); Mon, 25 Jan 2016 12:14:04 -0500 Received: from mail-bn1on0075.outbound.protection.outlook.com ([157.56.110.75]:19008 "EHLO na01-bn1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1757627AbcAYRNx (ORCPT ); Mon, 25 Jan 2016 12:13:53 -0500 X-Greylist: delayed 859 seconds by postgrey-1.27 at vger.kernel.org; Mon, 25 Jan 2016 12:13:52 EST Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Yuri.Norov@caviumnetworks.com; From: Yury Norov To: , , , , , , , CC: , , , , , , , , Yury Norov Subject: [PATCH 0/5] all: s390: make compat wrappers the generic solution Date: Mon, 25 Jan 2016 19:57:22 +0300 Message-ID: <1453741047-5498-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: AM3PR07CA0048.eurprd07.prod.outlook.com (10.141.45.176) To BY2PR07MB615.namprd07.prod.outlook.com (10.141.222.150) X-Microsoft-Exchange-Diagnostics: 1;BY2PR07MB615;2:0l4PVaMiu81rkn17WaPQPzlgMO0GQw4kwdsENhkf7RFIyy4DZ0Y1OHqeIRJUEwy4+k9RSYS0cXA8/Ds5uP3KwXF8DG1C8eL71ZkrnEZQQtXDjMnZuAC4CdX2v0oOStq0Hr88fZDQxFUbURCgz96xww==;3:2vfZhRsyiYFh2jHdCaTmp6o9zSfmk6KR3aEeHNvvKR7e7mVsPrWt7+K7clJgprPWBojYVDzciFtsbvGioXrJ18q6yuq3uYlgmKLZGtBE6Xag2XOhU7yAdI8QIHlfiepN;25:cB0sEQzhjT5cZLYQ4KrSO0OwHvnp0nCp99ax+3HT6NS9Bj5q815Od0VOP+zvdw3UD2yO0oQ2kVCzR8XqJbAk4w7JpaeY8OjLcRDGwGmjsPq+qZ4+A2q2ET1CSH9IbQQqm32N1uqUNwCnMdsawA/Bgn8YGgJk6dD2wpVmmktfcOMpaVUAEhJ0dDfj3NHjrGdtfvgCKzlFmfU/nU2tWiZ29MGK+fCIgD+pTn4cQlRdDqkXiwW5fLeIVgvqY21ySZyb X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY2PR07MB615; X-MS-Office365-Filtering-Correlation-Id: 228040df-c4b7-4ff4-47eb-08d325a8a7c2 X-Microsoft-Exchange-Diagnostics: 1;BY2PR07MB615;20:6m5k8MCsoHEKIw0cF3GBMUTj8m80S+NU/S/6oPwsvd4+NnWYh4lWeuEzuA6Rz7uMs0BSLfBseioj6wnuXeIgRJGIhu/cIDRx8Fh8s7p++JsZ31YJ8ityRjx6L5z3dRxU9yGF8AASXrvW1Wa1WHnG2qsiPrij5qx+hsmd+/K2npRxEVAuTUt6vlwbXE5RUnzkyNv5ySE8I0XkdbcTd5VeUBF028mq+rHyV032UF6XuZKOawj25ap8pEdpzxsca9xOgvyKgiKRwV0JrJBtwr9t1UjPJMcuiDumCkI4icaLkG0lyfOhe4zboB2fNBRXgtbtO/XJryMKLWckHfqJRlUUQ30S7z8m1cMwe+TT8H5mB7I/ot93njYMCacpXB5OrrbvsnN1OvTydmdSbwW1aFhH4Gg9DKtRXjLMgVxTIwR5v0C0eKdb8XPJFNYfUW+q8BBsbIQiWVO5gsU14vlyA5NvGQHanz44jVa19QN4yL/mcQvlFPNpnKxvxXCbbFIAXOBw86lRjH/V7NkgI5cFfaXAbfQ/7lLJSEVIPER1V7GoEl0TxER0OVnJKTh5SWznALZXT2mCLMQ3Q5Q5Mv97PsHrpVj8Wn3EPxCJX7cPz/kyArk= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(520078)(8121501046)(5005006)(3002001)(10201501046);SRVR:BY2PR07MB615;BCL:0;PCL:0;RULEID:;SRVR:BY2PR07MB615; X-Microsoft-Exchange-Diagnostics: 1;BY2PR07MB615;4:pGtkKok0lzAF4Ij6HiQe/2y5sznyUWS8NAmHJJy2pZLj+G8t2AMHGYTRZifJz8BgxCarSNDT3ylnodfLrv9Z8zNuSw6wTZvIvH9+k3rQLqy5SqA0i+R8XbtXzIXXAIBlLSwvJL8F1qAtvnNVrRJ00MuJtsXiUqTpzHC0hZIw1NKSqYacyoMEmWCCsABGgHbQM1q+laTcOu8buxT99t0Lx94trlTMYdEja+D6MJXrlb7areRk0pMqn19biYrmRtT96U7d/N+uSCUoU8UU45sSvNHNXB0JT7bZwmlTwJSkh6TJ1Qk0KJVdnDWTs1XkS1zmGiSOfqt9VMD9F8oUjCJ1nY18mtpdfkFZbnhkxflBsV/ooVhi4+LjX9ZKgUzeIHx/ X-Forefront-PRVS: 083289FD26 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6069001)(6009001)(189002)(199003)(4326007)(50466002)(2201001)(122386002)(2906002)(76506005)(42186005)(92566002)(40100003)(33646002)(36756003)(87976001)(5003940100001)(5004730100002)(50226001)(1096002)(77096005)(229853001)(107886002)(15975445007)(5001960100002)(3846002)(4001430100002)(81156007)(6116002)(48376002)(97736004)(5001770100001)(19580395003)(189998001)(101416001)(47776003)(66066001)(106356001)(50986999)(105586002)(5008740100001)(586003)(41533002)(2101003);DIR:OUT;SFP:1101;SCL:1;SRVR:BY2PR07MB615;H:localhost;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BY2PR07MB615;23:oxIIV498CXfl4VYMBhd2+vhiVZRSb34+MmKhMwbWd0?= =?us-ascii?Q?3ccUYrOeFu8LGSpPsMzez+3We0t04pDMBykP7eOvtf+Aefj3g1j2RpKQFfBp?= =?us-ascii?Q?hmiIUfUNHeEZCxOwkForOnVwSfo0idZRTxX9FS6HUrEsOITTxQNqznv0oNyE?= =?us-ascii?Q?5v5TXxVUa6g5FxLc3gA3J2q+AZQMbd5sgk1+g9uztEoLRT8DUIfdrl0dJCic?= =?us-ascii?Q?nmMmf3QE1GSnwchYdZ1VyrsSHI8aEaaJ/6DVI2mdhuVOpUJYmXIkiNncJLq8?= =?us-ascii?Q?H6m6p4brFGA212qIGJewX4ct0T7YPDkfaF4v4xr1EPTuF/yJucKxGYIv6kn/?= =?us-ascii?Q?U3c6gO4RLmmSUh+rq6dw4A9M647+Icu+WcgqTp/1DhWewx0Z5bsO3wfPUt4r?= =?us-ascii?Q?/Kgug7bzuWVQuJl3WrjqpR/3dpUWNFDdiDfPlB87or4jLp2T3RYTCW7WRCse?= =?us-ascii?Q?V2kuStoBpUdlfjP5v3HLNBlM9sT05YmbVsFWTGgpyAUof9wWdP8/cz2yZMk3?= =?us-ascii?Q?IHCf4TAUJnmGgfVFdBUGmptK6CqwdHTZWf/hP/TogaLk3d8TCsKUfy8FliOo?= =?us-ascii?Q?WUD3Cz7Hq+gCeACIjEp8ZQtRKlzv9gn/SIMo0Qgy9Uzma/TwDOKbk1XJPw3t?= =?us-ascii?Q?Xrl/n8dGGsS7f8S8JcBSdQmXj7tgsPOOyDS1EN0w6VyFv7/47r6yW/rP5wL/?= =?us-ascii?Q?fZBwkoD50YGkFVDObr8G23Bq9EpfnvDdYgOaf6qIGGLMQ8MRuF3tsbTrVh16?= =?us-ascii?Q?00EwQI5mRSzGMfdmvUT4A1LtJ4R45YkyCkiB+w6y24rWZZCE7S96QoeBw9DV?= =?us-ascii?Q?msF2t8KdFl5EKj6lUAphiHbJRhbIuQjCtJlUMOecB+bqYwwGvaQinJRldkyG?= =?us-ascii?Q?SAsRxmV2C7HGkgIRbdXO1LF5APBv+jxee779oD/dDBmeo9cCkE+bNrjJcao8?= =?us-ascii?Q?jB39y98M2a7nnQDKZjAXmnUzYI6ZiOdDQDbxjKjN6F22x9fongapciViemgZ?= =?us-ascii?Q?d+i43f8wyGWRn14JqKDkqEB19ys2DyG8cEfyoho8MHd1OgkOfJ2ywEUd9PX8?= =?us-ascii?Q?3dgL77Rszlur/WWIeG7sF0751se8NfCsQ8AX+VgRGU2C0JhcWR2KBUXLry83?= =?us-ascii?Q?HTfk/F9VLuR+0i/y4tpB4eYH0wBcE8iK+Hx5DYKeoYGVtHlqdG7g=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;BY2PR07MB615;5:zZyQMPwObf1WtigzNVU/GfrWRIUac8X8FNOb8zURpKdKcwxZM2sXy3DY0T/TQX7kVRgsRv3D98GsNgn5E3o5dBVqBO+W7g7w7A9gb5xcMKQDmtZP2MXPVbu2IhJC9aeRdNVl5UGZNLIGLgy/WxQYkQ==;24:eNtWUY5JKvB/teN5OVft9/YoOLwwU159l6MgvjBPOZJI6oaejjnrX0EJJ6xk7G1jxJBJHI51/60MEG3SGoFF/7LYrK51CZp+QRbUsad9eIU= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Jan 2016 16:57:48.4101 (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 Build-tested on s390. Yury Norov (5): all: s390: move wrapper infrastructure to generic headers all: declare new wrappers all: s390: redefine wrappers in generic code all: non-obvious wrappers introduce COMPAT_WRAPPER option and enable it for S390 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 | 179 ------------------------ arch/s390/kernel/entry.h | 2 + arch/s390/pci/pci_mmio.c | 5 +- drivers/char/random.c | 3 +- fs/aio.c | 4 +- fs/buffer.c | 3 +- fs/dcache.c | 3 +- fs/eventpoll.c | 4 +- fs/exec.c | 2 +- fs/fhandle.c | 3 +- fs/filesystems.c | 3 +- fs/namei.c | 29 ++-- fs/namespace.c | 7 +- fs/notify/inotify/inotify_user.c | 3 +- fs/open.c | 20 +-- fs/pipe.c | 5 +- fs/quota/quota.c | 3 +- fs/read_write.c | 2 +- fs/readdir.c | 6 + fs/select.c | 3 +- fs/splice.c | 4 +- fs/stat.c | 5 +- fs/xattr.c | 25 ++-- include/linux/compat.h | 280 ++++++++++++++++++++++++++++++++++++++ include/linux/syscalls.h | 57 +------- include/linux/syscalls_structs.h | 60 ++++++++ include/uapi/asm-generic/unistd.h | 224 +++++++++++++++--------------- ipc/mqueue.c | 3 +- kernel/acct.c | 3 +- kernel/bpf/syscall.c | 3 +- kernel/capability.c | 5 +- kernel/events/core.c | 2 +- kernel/fork.c | 12 +- kernel/groups.c | 5 +- kernel/kcmp.c | 3 +- kernel/module.c | 7 +- kernel/printk/printk.c | 3 +- kernel/reboot.c | 3 +- kernel/sched/core.c | 11 +- kernel/seccomp.c | 2 +- kernel/signal.c | 6 +- kernel/sys.c | 16 +-- kernel/sys_ni.c | 104 +++++++------- mm/madvise.c | 3 +- mm/mincore.c | 3 +- mm/mlock.c | 7 +- mm/mmap.c | 7 +- mm/mprotect.c | 3 +- mm/mremap.c | 3 +- mm/msync.c | 3 +- mm/nommu.c | 7 +- mm/shmem.c | 3 +- mm/swapfile.c | 5 +- net/socket.c | 14 +- security/keys/keyctl.c | 5 +- 59 files changed, 699 insertions(+), 520 deletions(-) delete mode 100644 arch/s390/kernel/compat_wrapper.c create mode 100644 include/linux/syscalls_structs.h -- 2.5.0 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yury Norov Subject: [PATCH 0/5] all: s390: make compat wrappers the generic solution Date: Mon, 25 Jan 2016 19:57:22 +0300 Message-ID: <1453741047-5498-1-git-send-email-ynorov@caviumnetworks.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org List-Archive: List-Post: To: arnd@arndb.de, catalin.marinas@arm.com, heiko.carstens@de.ibm.com, schwidefsky@de.ibm.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-s390@vger.kernel.org, linux-arch@vger.kernel.org Cc: pinskia@gmail.com, Prasun.Kapoor@caviumnetworks.com, Nathan_Lynch@mentor.com, agraf@suse.de, klimov.linux@gmail.com, broonie@kernel.org, Yury Norov , joseph@codesourcery.com, christoph.muellner@theobroma-systems.com List-ID: 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 Build-tested on s390. Yury Norov (5): all: s390: move wrapper infrastructure to generic headers all: declare new wrappers all: s390: redefine wrappers in generic code all: non-obvious wrappers introduce COMPAT_WRAPPER option and enable it for S390 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 | 179 ------------------------ arch/s390/kernel/entry.h | 2 + arch/s390/pci/pci_mmio.c | 5 +- drivers/char/random.c | 3 +- fs/aio.c | 4 +- fs/buffer.c | 3 +- fs/dcache.c | 3 +- fs/eventpoll.c | 4 +- fs/exec.c | 2 +- fs/fhandle.c | 3 +- fs/filesystems.c | 3 +- fs/namei.c | 29 ++-- fs/namespace.c | 7 +- fs/notify/inotify/inotify_user.c | 3 +- fs/open.c | 20 +-- fs/pipe.c | 5 +- fs/quota/quota.c | 3 +- fs/read_write.c | 2 +- fs/readdir.c | 6 + fs/select.c | 3 +- fs/splice.c | 4 +- fs/stat.c | 5 +- fs/xattr.c | 25 ++-- include/linux/compat.h | 280 ++++++++++++++++++++++++++++++++++++++ include/linux/syscalls.h | 57 +------- include/linux/syscalls_structs.h | 60 ++++++++ include/uapi/asm-generic/unistd.h | 224 +++++++++++++++--------------- ipc/mqueue.c | 3 +- kernel/acct.c | 3 +- kernel/bpf/syscall.c | 3 +- kernel/capability.c | 5 +- kernel/events/core.c | 2 +- kernel/fork.c | 12 +- kernel/groups.c | 5 +- kernel/kcmp.c | 3 +- kernel/module.c | 7 +- kernel/printk/printk.c | 3 +- kernel/reboot.c | 3 +- kernel/sched/core.c | 11 +- kernel/seccomp.c | 2 +- kernel/signal.c | 6 +- kernel/sys.c | 16 +-- kernel/sys_ni.c | 104 +++++++------- mm/madvise.c | 3 +- mm/mincore.c | 3 +- mm/mlock.c | 7 +- mm/mmap.c | 7 +- mm/mprotect.c | 3 +- mm/mremap.c | 3 +- mm/msync.c | 3 +- mm/nommu.c | 7 +- mm/shmem.c | 3 +- mm/swapfile.c | 5 +- net/socket.c | 14 +- security/keys/keyctl.c | 5 +- 59 files changed, 699 insertions(+), 520 deletions(-) delete mode 100644 arch/s390/kernel/compat_wrapper.c create mode 100644 include/linux/syscalls_structs.h -- 2.5.0 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-bn1on0075.outbound.protection.outlook.com ([157.56.110.75]:19008 "EHLO na01-bn1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1757627AbcAYRNx (ORCPT ); Mon, 25 Jan 2016 12:13:53 -0500 From: Yury Norov Subject: [PATCH 0/5] all: s390: make compat wrappers the generic solution Date: Mon, 25 Jan 2016 19:57:22 +0300 Message-ID: <1453741047-5498-1-git-send-email-ynorov@caviumnetworks.com> MIME-Version: 1.0 Content-Type: text/plain Sender: linux-arch-owner@vger.kernel.org List-ID: To: arnd@arndb.de, catalin.marinas@arm.com, heiko.carstens@de.ibm.com, schwidefsky@de.ibm.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-s390@vger.kernel.org, linux-arch@vger.kernel.org Cc: Prasun.Kapoor@caviumnetworks.com, pinskia@gmail.com, agraf@suse.de, broonie@kernel.org, joseph@codesourcery.com, christoph.muellner@theobroma-systems.com, Nathan_Lynch@mentor.com, klimov.linux@gmail.com, Yury Norov Message-ID: <20160125165722.psg5KELBnA9uHZV_x6jiQ2iEC1_6e8fQsIqelSkE_sA@z> 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 Build-tested on s390. Yury Norov (5): all: s390: move wrapper infrastructure to generic headers all: declare new wrappers all: s390: redefine wrappers in generic code all: non-obvious wrappers introduce COMPAT_WRAPPER option and enable it for S390 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 | 179 ------------------------ arch/s390/kernel/entry.h | 2 + arch/s390/pci/pci_mmio.c | 5 +- drivers/char/random.c | 3 +- fs/aio.c | 4 +- fs/buffer.c | 3 +- fs/dcache.c | 3 +- fs/eventpoll.c | 4 +- fs/exec.c | 2 +- fs/fhandle.c | 3 +- fs/filesystems.c | 3 +- fs/namei.c | 29 ++-- fs/namespace.c | 7 +- fs/notify/inotify/inotify_user.c | 3 +- fs/open.c | 20 +-- fs/pipe.c | 5 +- fs/quota/quota.c | 3 +- fs/read_write.c | 2 +- fs/readdir.c | 6 + fs/select.c | 3 +- fs/splice.c | 4 +- fs/stat.c | 5 +- fs/xattr.c | 25 ++-- include/linux/compat.h | 280 ++++++++++++++++++++++++++++++++++++++ include/linux/syscalls.h | 57 +------- include/linux/syscalls_structs.h | 60 ++++++++ include/uapi/asm-generic/unistd.h | 224 +++++++++++++++--------------- ipc/mqueue.c | 3 +- kernel/acct.c | 3 +- kernel/bpf/syscall.c | 3 +- kernel/capability.c | 5 +- kernel/events/core.c | 2 +- kernel/fork.c | 12 +- kernel/groups.c | 5 +- kernel/kcmp.c | 3 +- kernel/module.c | 7 +- kernel/printk/printk.c | 3 +- kernel/reboot.c | 3 +- kernel/sched/core.c | 11 +- kernel/seccomp.c | 2 +- kernel/signal.c | 6 +- kernel/sys.c | 16 +-- kernel/sys_ni.c | 104 +++++++------- mm/madvise.c | 3 +- mm/mincore.c | 3 +- mm/mlock.c | 7 +- mm/mmap.c | 7 +- mm/mprotect.c | 3 +- mm/mremap.c | 3 +- mm/msync.c | 3 +- mm/nommu.c | 7 +- mm/shmem.c | 3 +- mm/swapfile.c | 5 +- net/socket.c | 14 +- security/keys/keyctl.c | 5 +- 59 files changed, 699 insertions(+), 520 deletions(-) delete mode 100644 arch/s390/kernel/compat_wrapper.c create mode 100644 include/linux/syscalls_structs.h -- 2.5.0 From mboxrd@z Thu Jan 1 00:00:00 1970 From: ynorov@caviumnetworks.com (Yury Norov) Date: Mon, 25 Jan 2016 19:57:22 +0300 Subject: [PATCH 0/5] all: s390: make compat wrappers the generic solution Message-ID: <1453741047-5498-1-git-send-email-ynorov@caviumnetworks.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.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 Build-tested on s390. Yury Norov (5): all: s390: move wrapper infrastructure to generic headers all: declare new wrappers all: s390: redefine wrappers in generic code all: non-obvious wrappers introduce COMPAT_WRAPPER option and enable it for S390 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 | 179 ------------------------ arch/s390/kernel/entry.h | 2 + arch/s390/pci/pci_mmio.c | 5 +- drivers/char/random.c | 3 +- fs/aio.c | 4 +- fs/buffer.c | 3 +- fs/dcache.c | 3 +- fs/eventpoll.c | 4 +- fs/exec.c | 2 +- fs/fhandle.c | 3 +- fs/filesystems.c | 3 +- fs/namei.c | 29 ++-- fs/namespace.c | 7 +- fs/notify/inotify/inotify_user.c | 3 +- fs/open.c | 20 +-- fs/pipe.c | 5 +- fs/quota/quota.c | 3 +- fs/read_write.c | 2 +- fs/readdir.c | 6 + fs/select.c | 3 +- fs/splice.c | 4 +- fs/stat.c | 5 +- fs/xattr.c | 25 ++-- include/linux/compat.h | 280 ++++++++++++++++++++++++++++++++++++++ include/linux/syscalls.h | 57 +------- include/linux/syscalls_structs.h | 60 ++++++++ include/uapi/asm-generic/unistd.h | 224 +++++++++++++++--------------- ipc/mqueue.c | 3 +- kernel/acct.c | 3 +- kernel/bpf/syscall.c | 3 +- kernel/capability.c | 5 +- kernel/events/core.c | 2 +- kernel/fork.c | 12 +- kernel/groups.c | 5 +- kernel/kcmp.c | 3 +- kernel/module.c | 7 +- kernel/printk/printk.c | 3 +- kernel/reboot.c | 3 +- kernel/sched/core.c | 11 +- kernel/seccomp.c | 2 +- kernel/signal.c | 6 +- kernel/sys.c | 16 +-- kernel/sys_ni.c | 104 +++++++------- mm/madvise.c | 3 +- mm/mincore.c | 3 +- mm/mlock.c | 7 +- mm/mmap.c | 7 +- mm/mprotect.c | 3 +- mm/mremap.c | 3 +- mm/msync.c | 3 +- mm/nommu.c | 7 +- mm/shmem.c | 3 +- mm/swapfile.c | 5 +- net/socket.c | 14 +- security/keys/keyctl.c | 5 +- 59 files changed, 699 insertions(+), 520 deletions(-) delete mode 100644 arch/s390/kernel/compat_wrapper.c create mode 100644 include/linux/syscalls_structs.h -- 2.5.0