From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753648AbcERR7N (ORCPT ); Wed, 18 May 2016 13:59:13 -0400 Received: from mail-by2on0055.outbound.protection.outlook.com ([207.46.100.55]:52576 "EHLO na01-by2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751992AbcERR7J (ORCPT ); Wed, 18 May 2016 13:59:09 -0400 Authentication-Results: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=caviumnetworks.com; Date: Wed, 18 May 2016 20:58:59 +0300 From: Yury Norov To: Catalin Marinas CC: , , , , , , , , , , , , Andrew Pinski , , , Andrew Pinski , , , , Subject: Re: [PATCH 20/25] arm64:ilp32: add sys_ilp32.c and a separate table (in entry.S) to use it Message-ID: <20160518175859.GA2560@yury-N73SV> References: <1459894127-17698-1-git-send-email-ynorov@caviumnetworks.com> <1459894127-17698-21-git-send-email-ynorov@caviumnetworks.com> <20160514150352.GA30533@yury-N73SV> <20160516170605.GB19290@e104818-lin.cambridge.arm.com> <20160517190526.GA3731@yury-N73SV> <20160518112145.GD22378@e104818-lin.cambridge.arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <20160518112145.GD22378@e104818-lin.cambridge.arm.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-Originating-IP: [50.233.148.158] X-ClientProxiedBy: BLUPR0201CA0029.namprd02.prod.outlook.com (10.163.116.39) To BN4PR07MB2225.namprd07.prod.outlook.com (10.164.63.143) X-MS-Office365-Filtering-Correlation-Id: 204269ce-6feb-433e-d203-08d37f461969 X-Microsoft-Exchange-Diagnostics: 1;BN4PR07MB2225;2:cdtTvfhCwNEkkZypezy35ZNz16bg7lvyAMHcIB3o+jzbnz6te9pO4e7QA1xa9hZJOfvssh2ayg6lsKYxzvdj1o4G1tcRtpi65HkCwtQTYRwHG9G/TPTBP/VYS51a8M5Yt67eqJQD06N2R2Tue69B1h0WEtqZLertOWVT9Hzd6RpPF9mjkW7Rbd/axSGXYj43;3:VM/gdf+HxBuUuAqiIVZc4zpD3y/SuhQL2BtsktN9B8t2vHSjQGvIy1JdoU668gQPFQUlLpVF8poIfQl30uiR99aJa6qhla1u1EdDysF4mGNdTJjP3ZoBxKUYx2z6NIMQ X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN4PR07MB2225; X-Microsoft-Exchange-Diagnostics: 1;BN4PR07MB2225;25:zhD5Pe7fZHtHrduBL2gNHXIFzWAIF7HBPVvJxpBSpvc+TeIYmjFHm37wCFUweJJg4kiV9k9bDkGTGDP1T9b7+sISuij43cpuLclp1fG0ZLcUwTYvyqJNdtXMIRHIx0tzzQPIzAJy1hmm40R+WbSg/QF45JlNq3GDPCNtgN0sib4swA0wcVAm7iUkYPAMs52WNcvXqb9/yNKrldAFPkPhRI3DSH5OsmQntf2+PNj2ggcOCnyrCv3JBPpvqKqKoZSoRJWd6UkjJpJPwfyAbYMbLD+w7Nf7hCHTqLBRvCElbeoaL1I2doiTmhuOEAAI2WMGsvaBd5xawYzR8ifOw7hqvnXsuoEV3qnZkXj/Phoo4B83eSE1d5o1nzIaxH3GiuwDIXV/b+hBRE/5DwcAxgBgd8d6VbUxAa55cCaaAwe/rPEpedLbNxwbi2N9Jjc+/7DW5MLSrjoDd4yV/kr42NvVAWNWkQP1Q1Zy0gDDVZPxifUfldZg4NE+U02l9n5ABb+B6WH5FxmgfUzideyom7wZvQzSKScCWoV/K5OBskHcQekU1GlkJDkH0q3ZI0oFXUKmWJc/dP1iJRSW6RcWZdqpmwyOii2BoplggPoZjldesmxb5lOAZeexB21agk3ksyPMZ3gEWwNM0LneSpmbGMVnwSTIcGOXeWk7KC1UTTZ+nDh0ucLbpyzb7roHYv8l4M7JTk7Vdg/2/7q1OZsogXLDRQ5KZ3rY/wNWTMtWUPw9JpU= X-Microsoft-Exchange-Diagnostics: 1;BN4PR07MB2225;20:MlyP/LfufHxLNHvNilb6K8sktMmdt7Os4dPjD14aOsXQmLMW/l2xZDPUmT/3wwJBsXehZ4NMnwevg4aFQPK3iIr0//8lRA+dl0ncISq6jr8PNQCHbw+Ki2Qg/4oQ1qjeX9pVrUaZrMco8qCq7WKrpWnpv5xjKk0kkim+p3ybEjUX+tXA5W6yhS7j9E2InEMkq9BAVHZoJD+vefj4RIsQJa2/M5yqIsdrpbeuKoX9n7Vn5TT0XZMXt2b6h9xiDpiRbxE5K1xOFoO+ZOpLTW8t1HGa1bpDsYAkwNx33NwzIHO4QT5eKeusd0/LH+ih7nTUm6kZylI4bnuZjd5JitgFqUOqQzv/5HQIANKB3CxL/btjlIloSu404hLob1dh3X6BLT6yPI3p7f7kNKE00wjFYD1BfGzBZo7/aGgB8bs4p+NSnSwk2cHFsel/abIYZF6ikKHx09+qDZljfQd0rKB0KlzUXXtnFRKK41jOou1NuLFBJHALJ0t5E/roJ87pokKR5vNUOHX05FUdTlflJtptw/h9mL5fqBLQwsZ8V9ORP93q9D5YY997mo7cF18S4b/eXpSil3wLJmnxmDqvkPH/0fmC0KFIcs8eQbcnAOrl18w= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001);SRVR:BN4PR07MB2225;BCL:0;PCL:0;RULEID:;SRVR:BN4PR07MB2225; X-Microsoft-Exchange-Diagnostics: 1;BN4PR07MB2225;4:odUeOZm9l/WdjpXLjBWQ5NRaoMg+MFusvXQf1eEzrGrUoUaR2avWe7D5UG9SQpx/1TrYKLh2RSO2uPXCrgxhXdifY7eLYfrQr86E+gKcKU3ew0Vyv6+qA0xYCtLzNCXr/6y4TkRvus6iZFdj2mk1xdVQboVbAMSzon5Oz2xg8eSYNOLFNjDP0SBWt59uvM5szjOWvOTz/WCrfTHQQ1jCVGCtigmG9ubKp+pzDpgJCf0/BvVtVRbScE5Uf0buaM9iyKCa5RWDCVJZrhNCMHIobBAFIEEY1v2m3FE9tKq4J7cK9pP/OFgnwzIqLS8AmCzqxQtIHgQEcWZ2D5+Wycul44T5q2IhYVbkjQ0a50Rm4Q4= X-Forefront-PRVS: 0946DC87A1 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6069001)(6009001)(24454002)(33716001)(66066001)(47776003)(76506005)(5008740100001)(97756001)(42186005)(33656002)(50986999)(46406003)(54356999)(93886004)(83506001)(2950100001)(76176999)(110136002)(77096005)(92566002)(5004730100002)(9686002)(2906002)(8676002)(6116002)(81166006)(23726003)(586003)(50466002)(4001350100001)(1076002)(4326007)(189998001)(21314002);DIR:OUT;SFP:1101;SCL:1;SRVR:BN4PR07MB2225;H:localhost;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BN4PR07MB2225;23:VZ+tU4ZQuc4ykTV8lRMKvXyPuI9GTYLFe7WMb41gh?= =?us-ascii?Q?ltqEknkFJopbm9cn7zfJ/Az2+VAEHB588rrb+ie4n1m4lpII2L2Z3a2NbQ1J?= =?us-ascii?Q?n/TGqirOTV/RyHuxjdRXrLARvTq0awVWLzpXg6K8pHNt89d10mfJ+GsJQejC?= =?us-ascii?Q?cUFRUiqBDCPNIV4dMLa0PeLPkhf5iVnWJlMoDUKqCB2BpzPDGtO+BTQDH8bO?= =?us-ascii?Q?NDxJ+45qPotQ30trUQHQMapNV4Hdx6pIdU0JPsBdgHSy7u+z6OuyDrK+E1LV?= =?us-ascii?Q?85d+WwVuFa0xWRtfFAAS9O61QZT5/yR/LC+tdOa8kxi2tudVlJjQVOTl+PpY?= =?us-ascii?Q?z2il2akgM/NAY3x5qiCgd7a/ehNW+JGk/L3ETdhGe6svrmcfJ+g6pAvTJa56?= =?us-ascii?Q?ZuHxRHGZTk4an66uDfHh9I/P1VHjckVnEyKDR+eXh0AZbUPn7a3WtHFBt7y0?= =?us-ascii?Q?HNX2UtdCLADSwFFUuYOBaxnCcppY28G4P7/upBpsK6O2+wqzngVw0Zg28wWR?= =?us-ascii?Q?S7Wm3Q4NAwqooWbfB0uio4RKJU8ttNgbjMXualkY93N3SrTw3hWkXVTB/D4C?= =?us-ascii?Q?Lz/mSMRshMaQ6VY5COhxSGjg31MQqoPdCiaylKycyFra45ViZC+5i/D0vGtc?= =?us-ascii?Q?cRWvqCGvxD9TxLPc26lDEqMHVUhMN1Pebv3OUc5Dm3W3BlSLCWP6w05rliFG?= =?us-ascii?Q?cr2iq+kP5pAw/1XF67K7Mr9Svuq3pMEIChjj9It7nVmDDekQO8fWgwpp80Nx?= =?us-ascii?Q?T/EzeIL1g/vWHztr5B0oeTdGlW8mGF0PgaxG3qp6+TUXGKtF5tLE6P25H+MY?= =?us-ascii?Q?lX5rdCFoV0UoHzLllSYMMi5Bh0rJCjrW/vGQCYpkGU5tZhEmX90vEyC0A20Y?= =?us-ascii?Q?FPbUmhyAOCwWnEL517MgqeZT7iepOpiMPCbCTyJXfMTOe3kr6qgEnd+8sS0r?= =?us-ascii?Q?pfCfqnRXH8WtsKrOWcHrMernbA/zJ3TYhvVb1YOBQ=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;BN4PR07MB2225;5:9psRwOgXcljKRQH+WzDyfRgQcqPLCPeGEVdQAyfKvH6iukAnjD88EBcozjRHhwih1gTmccENtJunUQXHmb4ptuU1uwiXem81Aozrrl8gjng2DxV4H676/1Qw03GeatV71Za9pu25yIqnkVusbFFUzQ==;24:W34N3RYICoqHJgQXchh7Mm6lMwsYSDU9UixK4e07Px4M0rnylLtP9qhw2LYQuaFN+YdEoBvLnz2pMSt+FxCRynmaVD3XdUQa21Sl4RvWjyM=;7:Q+3kFjGgJuUWo4dBUojEYRnxuJ4huJKQ/y+WjesMNWGcYGJNeqVl7iDb49RLptB3WxNW6m9+d1EkQXp564yxAd2L4NoSKOhkB+fMptF/6H/zle2DkieXZG8cDJtR+0Vm4sLrhHmB8b9kdRGrXMcqZGPoHXVkyAm5iItw4QgziVbW1i+8nEGKlM8+LEhhk57V SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 May 2016 17:59:03.8093 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN4PR07MB2225 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, May 18, 2016 at 12:21:46PM +0100, Catalin Marinas wrote: > On Tue, May 17, 2016 at 10:05:26PM +0300, Yury Norov wrote: > > On Mon, May 16, 2016 at 06:06:05PM +0100, Catalin Marinas wrote: > > > On Sat, May 14, 2016 at 06:03:52PM +0300, Yury Norov wrote: > > > > +SYSCALL_DEFINE6(mmap2, unsigned long, addr, unsigned long, len, > > > > + unsigned long, prot, unsigned long, flags, unsigned long, fd, > > > > + unsigned long, pgoff) > > > > > > To avoid the types confusion we could add __SC_WRAP to mmap2 in unistd.h > > > and use COMPAT_SYSCALL_DEFINE6 here (together with compat_ptr_t etc.). > > > > > > > +{ > > > > + if (pgoff & (~PAGE_MASK >> 12)) > > > > + return -EINVAL; > > > > + > > > > + return sys_mmap_pgoff((compat_uptr_t) addr, (compat_size_t) len, > > > > + (int) prot, (int) flags, (int) fd, > > > > + pgoff >> (PAGE_SHIFT-12)); > > > > > > Then we wouldn't need the explicit casting here. > > > > See below > > > > > > +} > > > > + > > > > +COMPAT_SYSCALL_DEFINE4(pread64, unsigned int, fd, compat_uptr_t __user *, ubuf, > > > > + compat_size_t, count, off_t, offset) > > > > +{ > > > > + return sys_pread64(fd, (char *) ubuf, count, offset); > > > > +} > > > > + > > > > +COMPAT_SYSCALL_DEFINE4(pwrite64, unsigned int, fd, compat_uptr_t __user *, ubuf, > > > > + compat_size_t, count, off_t, offset) > > > > +{ > > > > + return sys_pwrite64(fd, (char *) ubuf, count, offset); > > > > > > Nitpick: no space between cast type and variable name: (char *)ubuf, ... > > > > I think it's really a matter of taste. I prefer to have a space, and > > there's no solid rule in coding style. > > > > And there are 13032 insertions of my version vs 35030 of yours: > > ~/work/linux$ git grep ' \*)[a-zA-Z]'|wc -l > > 35030 > > ~/work/linux$ git grep ' \*) [a-zA-Z]'|wc -l > > 13032 > > > > Of course, I will change it if you insist. > > Not really, I thought it's covered by CodingStyle but it doesn't seem > to. > > > > We can also make these functions static as they are not used outside > > > this file. > > > > If it's OK, we can use just compat_sys_xxx() instead of > > COMPAT_SYSCALL_DEFINEx(xxx), > > I got lost in macros, what difference would COMPAT_SYSCALL_DEFINE vs > compat_sys_*() make? Is this the delouse stuff? > Hmm... I looked again. It seems that COMPAT delouses all arguments, including off_t, and that's what we try to avoid. So we *should* use naked functions. include/linux/compat.h: 53 #define COMPAT_SYSCALL_DEFINEx(x, name, ...) \ 54 asmlinkage long compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))\ 55 __attribute__((alias(__stringify(compat_SyS##name)))); \ 56 static inline long C_SYSC##name(__MAP(x,__SC_DECL,__VA_ARGS__));\ 57 asmlinkage long compat_SyS##name(__MAP(x,__SC_LONG,__VA_ARGS__));\ 58 asmlinkage long compat_SyS##name(__MAP(x,__SC_LONG,__VA_ARGS__))\ 59 { \ 60 return C_SYSC##name(__MAP(x,__SC_DELOUSE,__VA_ARGS__)); \ 61 } \ 62 static inline long C_SYSC##name(__MAP(x,__SC_DECL,__VA_ARGS__)) > > and for mmap2 we'll not need to change _SYSCALL to _SC_WRAP in > > unistd.h that way. > > Looking at the generic unistd.h, adding _SC_WRAP for sys_mmap2 is > indeed not easy: > > #define __NR3264_mmap 222 > __SC_3264(__NR3264_mmap, sys_mmap2, sys_mmap) > > So defining a compat_sys_mmap2() would work but I think you'd also need: > > #define sys_mmap2 compat_sys_mmap2() OK. > > -- > Catalin