Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753675AbdFSPu2 (ORCPT ); Mon, 19 Jun 2017 11:50:28 -0400 Received: from mail-co1nam03on0081.outbound.protection.outlook.com ([104.47.40.81]:5280 "EHLO NAM03-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751959AbdFSPuW (ORCPT ); Mon, 19 Jun 2017 11:50:22 -0400 Authentication-Results: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=caviumnetworks.com; From: Yury Norov To: Catalin Marinas , Arnd Bergmann , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org Cc: Yury Norov , Adam Borowski , Andreas Schwab , Andrew Pinski , Bamvor Zhangjian , Chris Metcalf , Chris Metcalf , Florian Weimer , Heiko Carstens , James Hogan , James Morse , Joseph Myers , Maxim Kuvyrkov , Nathan_Lynch@mentor.com, Prasun.Kapoor@caviumnetworks.com, Ramana Radhakrishnan , Steve Ellcey , Alexander Graf , Mark Brown , christoph.muellner@theobroma-systems.com, davem@davemloft.net, Geert Uytterhoeven , Alexey Klimov , linyongting@huawei.com, manuel.montezelo@gmail.com, philipp.tomsich@theobroma-systems.com, schwidefsky@de.ibm.com, szabolcs.nagy@arm.com, zhouchengming1@huawei.com Subject: [PATCH v8 00/20] ILP32 for ARM64 Date: Mon, 19 Jun 2017 18:49:43 +0300 Message-Id: <20170619155003.13218-1-ynorov@caviumnetworks.com> X-Mailer: git-send-email 2.11.0 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [85.253.137.34] X-ClientProxiedBy: DB6PR0801CA0049.eurprd08.prod.outlook.com (10.169.219.17) To BY1PR0701MB1862.namprd07.prod.outlook.com (10.162.143.144) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 6b096fd6-1db1-4b08-f77e-08d4b72ae10e X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(201703131423075)(201703031133081);SRVR:BY1PR0701MB1862; X-Microsoft-Exchange-Diagnostics: 1;BY1PR0701MB1862;3:OXRHZuxztVc2y/mYLoOknQILG7WUlhnXlFitRgOp/lB8SDsyr6bZ6CUcbUV49cg0KupMrRa67tGIwY6qAU8K5ZxM2aIVXsPVD3g0DwidtD3Z3Es3TMO0BhVqFeqwX3brAooxckq62Xm9QycBwrRS/o9KJY/CGyl8JjTE7whWZibjb8FFFOcXB7XUYxSL1+gsibeQL1FWmSPaJKHI7eWLHXh48HCDD1/CCrVZ7qtZyojgtDE6vi69bbMffatFVd8kkLmKAgzFlPzy7UPpYaXxhJ/P+y7mLp7lkKbfg4uB1pr1QXwFo3H5ayjL4n4WtcVcpizH/8Z/D3N8O283ll874Q==;25:7puAP/qcm+ot+ILw6onJCyvYHSAyghd3I4TmZIkYqydEEAd2fbzJkHAIRKTdqYb2M+YiO49vRMy14XN4tgy2BjgTtzsIc+SFkAFZxIYN1+vQarpa2BXBSVonFmhm3l0uOVaLmu8gnYj2W2kFGp2vHgXI3eQhMvq+3sy6LZoJD0PZsisrQb//j05bqkdrR0sjStI+M3N7+COPkOM5z1elGKq49aETGQxfLj0P0DiFYAmX9+AvHqLqGfus8SfGnJSE3axLYT3YGotNecO9V8HkPZU2RwTUBlTwyo5lr1DnPQRLOyvA4WigJ0QQ/qpv1vp965qwi0Bqsmd3lavDViQGrwQKO+20W8NTpvP7+hFLbw+dxsEKDnWcwwIPzaIU3/YRc1n/vJ1khzIhveqr+oPks+Z9TDtreeODimeEQv4xMYA6i2AwAnaYfvdJBVdZx59jPOiDFbW+/qdaddudhgKTdPeFrRmfziJd2Uy1pshCYNs= X-MS-TrafficTypeDiagnostic: BY1PR0701MB1862: X-Microsoft-Exchange-Diagnostics: 1;BY1PR0701MB1862;31:ofaCmD0IFGeygcuufo5va4SfIFV/zxcPnSFKQnRJ9iVVe9dobDQyuSOIySFvqG2O//w4ah99j7Sg5KdsJxnvQtJ6S2iHhKSUMEtCVuH/tRZzJPHunO+dhRM0PWwsk7+KrpJj+H1IOmOI5YSjddBxrgHliNrE7+f+BmOb2zJgDiXrkbc20GjrhJHTqN7W2ptbC1DhDJ1R574V42FcvyXVzp7rnlovSBRlkfqLgojxHFM=;20:umfjVcXxIfzcMW5u7JySQxTd4+Alf3gwifYSykIQNt5bgbO7oFWyLTvSgaisHB5KB1gfyU9xZJxObl5WsAHreXwEN21Xt/xCiqcQfMC0J1Q6P6XiokCdKOCwHvx22t9pornMwviWSJbnjTK33ff4IlGbvjO/1ET5qixezNT2jJhU6Gm1UI0rn6GgazE0eAkfXEA4EsQYmtV55eyz6SVtSV/sI8OQAAfJCQ6b2jXjfPLtoo9hPxknifdLGyPFYIF/fovZkRat7JvY+TctfqRBr0QRs7FCgl/nh0qdz3wIoLoUfyPNZAiMBpQ6LUPKsUfnfrDHcYwMY3RQNI7frBSTgtXKloBHkA9JBLpEEjx3hQj1C7i4N+YiuXtfF5cr5Sx8TknPjR9tPZqPMqWdh2KBJO6w/a6bK+07ogg6fDDX0D7n09uORTmnT8wOlguBBzugz8M23TqLIrCqTcDgz9r5GI4HqcrjCHsvbfqP3csu1mQnFcYTbopAxaZJPUm0zJVLsZSbpo3XhJKSvBNeaVOTWJ2X6PVuFa9Wju65UunZjYgqngAx2cobfNAntQdE041ATPlmoLD6nAEM5PMNvMLhBtSMx65W3TBRuRGR0fq6sE8= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(166708455590820); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(10201501046)(100000703101)(100105400095)(93006095)(3002001)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123562025)(20161123564025)(20161123560025)(20161123555025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:BY1PR0701MB1862;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:BY1PR0701MB1862; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BY1PR0701MB1862;4:ZuF40mO0gi1CO57CA0f4Fi8uRQSe1AQkmVY/X1jm?= =?us-ascii?Q?OJt5m8E2sJwZFZyY8vo59bN7q2Ko2Lpt34vMHyxrmAIy7We6kiX4Sb8UqViq?= =?us-ascii?Q?4mwyRZtsDmugaaHdkpWOAPMHAMRkoewXynLu93nviyIaUXz0HHs1tjHf2PxI?= =?us-ascii?Q?/cG2TV3jFOk4eGic6ROun4ms6AZ1zAA1J674dexk4cKuJ3Sl56t6tTAkCkcx?= =?us-ascii?Q?MsjMhLREzniqQWgFisEgwIQ1vmy9MwMw6pFB1UirEJknxGWVD8sS8WOKF8yg?= =?us-ascii?Q?nTbybLbUS2E+396qbWbpAhAYI1QSqYGUrM/HG2WZi4K0z6wUyxDByP3Sak6v?= =?us-ascii?Q?n4UUzpcEV2UxOB9CmjRDRA+4zF62OOHzAq6ZjHf86U6b4UGjm7Gb97XRYGch?= =?us-ascii?Q?PKSUU3FqXnAKSsCPUGnSnV8+oeAODbXnNG5EMx3vLVD0nZSWYQ8TbuRp9nny?= =?us-ascii?Q?qhforUXbPuzD7abLxi9VO4/ooyWOJTCXieYUAyGUCQWMBgYZrY2R3VeifVm6?= =?us-ascii?Q?5qoUUXCVdwQs1sjG5He3lkdks1//fVcsXDAtuCmnPpZ6wk3opBpc2EFMgMQD?= =?us-ascii?Q?cm9EbsawHvl/rC/rYAS9pv1m+HkrA+SlFNbVxqZtnO6iqjADUhd9uTpipZcv?= =?us-ascii?Q?lnVdUCb9ciBx9a71RnbemREM1foy3mFJTkfY1nDf7gPJmNRD29fJkPSgvqKP?= =?us-ascii?Q?hiTbLPCfXrW7VFqx7NFBnRUGl8dJQd2ss6wG1NV1Y/WaO84gSjbSx0cGuFf6?= =?us-ascii?Q?Zhof89gcf6Umdx/V1b22PBQBioWjwWn8q25S5czsvgCt1he6ym3hHEZJgsv4?= =?us-ascii?Q?lkGW6+f8oIgSC1Bmp5XEEp7CNj9ZPiiWzjEsRNDHpXMkq2pjPXU8LA+US9gW?= =?us-ascii?Q?8ig/1kOyEhAQHiS4Zp0JOLVANSec21cf3QM/iirPmn+17spDT4EoT9vaYAQS?= =?us-ascii?Q?pYURD03aODHzgZ6dHT5MINaYwE2u7qDV2J66GoUjrug7cBJlS3cK2G/KLMb0?= =?us-ascii?Q?g8W4Tu9SP70PwsyMPyDYOfkx4i59I2+M9XJlVieqrWIFHqdLS/RCZZugIXsh?= =?us-ascii?Q?SBQdigD4jarpsnkxbVytWGsMflBs4SAPRtVEFp61yxSuYcwrsVV02Eg04P43?= =?us-ascii?Q?5GTJGPV9rZnvvralwPoNxojM5crQYWEB62V/vhPIYKIU219+kso/Hw=3D=3D?= X-Forefront-PRVS: 0343AC1D30 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6069001)(6009001)(39450400003)(39410400002)(39840400002)(39400400002)(39850400002)(53936002)(189998001)(2906002)(50466002)(5660300001)(50986999)(33646002)(38730400002)(5003940100001)(6486002)(478600001)(966005)(72206003)(6306002)(54906002)(48376002)(6666003)(47776003)(6496005)(66066001)(50226002)(81166006)(25786009)(8676002)(1076002)(3846002)(6116002)(42882006)(7736002)(42186005)(7416002)(7406005)(36756003)(76506005)(305945005);DIR:OUT;SFP:1101;SCL:1;SRVR:BY1PR0701MB1862;H:localhost;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BY1PR0701MB1862;23:LuTtxpMj37DWFUx34dRnZytv2dJOqZ8D+RryYCM?= =?us-ascii?Q?+BUmrPtBAtDyxPOI1b//rXcdxM67EKTkgOPNwXykQwkADAInc5SZP+hY+4et?= =?us-ascii?Q?SYVgLrkZ+wOAGzXNPf7Xo/ZmQvKTrkD7zO626GUpvHG7IxIbCpObUkfQBpvQ?= =?us-ascii?Q?PVyCC6lthb4bdglasSCW87U+D1X7tI3objNt8w0aMehEty+oQo5WDgoC2nop?= =?us-ascii?Q?NzNnCCJCCL6HVRGfdLq6XcKKXtUVl2aIOd+4/goPOK49SURzoLlter+Q6Abh?= =?us-ascii?Q?l5u0PUBDncE/fKufR9yla3451ROE+btDWxiaO7fOLAW5EWfX9xz48v+QfSRw?= =?us-ascii?Q?yOaFtE5fdRYI/C9FMvogldsnApoDSXaV6eIynxxwDC8nuQ4iEXr5WbR0V75q?= =?us-ascii?Q?zTYLJ50TV/s3U/Go1tmuqyTOGvFNM5qnU0VzedyjTTXi8ybTmuAr0VpL1LCK?= =?us-ascii?Q?ymI73z5jG16mpT8zIDgO+kyW7rOoekID8XJq9Lp/AJ+p2VRCcTQ10jTugfr6?= =?us-ascii?Q?W6hePkUjnEGakyqzZco7HUeem977A0clXA0FiwHls7TSdMIz9Icl7lxojOCP?= =?us-ascii?Q?PjW/RTUt6muh45DeUF6t/bXReWd3fUgEIz4+60FjBROxvF3gYMvjHZO6q5Ft?= =?us-ascii?Q?XNCxyvQQVOuUGcbjchbBacnCfAKDqeG68v6DT5TArugjsOs6GdXoibEL7pjn?= =?us-ascii?Q?cxlTQ2//mQbP+oxAnLep00UVggZtkdGrzMd/6boCCfi0QzI4uBgFzDFL7lGe?= =?us-ascii?Q?paaQlR3OIugrlmOXlw8ozsreTtAQLDvvs1j/eNap8X/+Dm4Ftt5duBAJSnEN?= =?us-ascii?Q?FAzK3iclO2zs5IeVXeMlSqifLpZiCZVij8kQArJ4WuImWAolsLm9XS54idgQ?= =?us-ascii?Q?We+Ay4bni/Un3vrIm34bs8nj2DB/jSy1YMiXNQc8MbkfWwie0DV0EWWo9tGM?= =?us-ascii?Q?scNVvYw0C+DFe3w0e1nUKnUcDN1CUnvBa9gyFBU72RUC0rOOAgTQCEAGZA+4?= =?us-ascii?Q?YHTQ7QjeJysSSi1rHwBCe4H8L2FnQLf+rLWZhr1VxMC4kIYqrq2TCIZJzBuX?= =?us-ascii?Q?wF/+Lb3oka6BEVzFo24bWQ5gT2u2j?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BY1PR0701MB1862;6:6AA60YlLgCLQK+fWhoVFaukExk85dKdUa7Mq4Vll?= =?us-ascii?Q?p4Y4krN29xQ8UMgmNjBGo69X9Crm8njf+Ade4HihrabPM+0FAs7I65TpJ6Uw?= =?us-ascii?Q?t/CoV+c3fFI7WQKfkUeJBzaverjaLNyZaUDSK/M/7tfDCc09cERscy7gVruT?= =?us-ascii?Q?pE+yOsBT5WtnNXKfjS3DURrxBPHRlrZXZb74CRMOd2gphSBYuNOmFa0Y67Sh?= =?us-ascii?Q?6J4v+75fRo2nzZXiINT9zB4LpNDcBYXitCTOWEzN5NdjsUnhxhY+rDKVlyYa?= =?us-ascii?Q?bn7WWTAsPVwot9g5Gn3hvOomiIlMyfS4P7co/ea2HUs3Jx0ZCtLsGeiCO4es?= =?us-ascii?Q?jKcGQ9piJ075ALnXNwfb8ZlonLkKr4kipZm6HE1QIwYmrnFdNYGO8tXs4j8o?= =?us-ascii?Q?/ZXwZzDIN+xhdMFBIDlbS2bUdNS7dRWaRH5Lbm+ubOGeGXdxG92bjF+SRZMe?= =?us-ascii?Q?5QyZzT/eWsZrbFdJgpqg3++WVBExlscNW73LUR11tvkp28VdgCPxqzQuSjrP?= =?us-ascii?Q?/JlRQAWZlykpgm6k8g/bsZzqvoChPw6AyxOMzBEnN9KbsQx95AHTm4WXtLoj?= =?us-ascii?Q?7sY6PjIN0CehEzzQc8ORhQdUccoOLsJRGYHvs8nNJvFF/nW/RK+U5PDlrAjW?= =?us-ascii?Q?8JFQdeKBlhU0dfshf/aPBZ24d1/lRmBUNXX3XO4S5y25bi2ie2XUVpO+ZMWz?= =?us-ascii?Q?widwSnJCBR+nJiBCDsJDHcTX/qakscQbecpukSHB8q/m3PMVfuW8ASAw1U70?= =?us-ascii?Q?NxS1D/k1LGiaTOSt7CU1PKoOhZmKdrrDANL4FAWpHhS5qZg4Yv3GDXHERuS6?= =?us-ascii?Q?nTWYoduAF3shFoh6G+S42O0vJOQTQ5IfV5fEruYWzgBYim0l5jJ4kTGKGbqd?= =?us-ascii?Q?Y2hNgDSI6RJJx0ps2cVh0F4NxJsSDKrmwoUAqdvny20lt+QTJp385wdnHS+Q?= =?us-ascii?Q?Vl049dZM8S0UyRKIxm6zKD6n1NIMpLgoqXCvCaX3Xd+ooMLXA9m8wLVdO7UE?= =?us-ascii?Q?K+w=3D?= X-Microsoft-Exchange-Diagnostics: 1;BY1PR0701MB1862;5:n20Mrsw581tJVdEFXXYsFlmmPt5DhppqDUndILgoj637fEn4RhQvaeEpbAgjUQwAX/yxrun7AqW3a1OCUA5dPg2xt9pkPIOXFMUZh7VNZMG69NCqPSyP9QSIBdfVLeP+LMv6q2kRIpSWwCSc3W8pe9Rxs8OVSzvS4ijieULs+LLhLmpsrt0IBkVJk6rvKs+72JJppQpNHxo6lGe7IIRhikguIoKrEecsTl1nSpIYbhiYQTLm2We7XPCl8cwDnQj0sxJ7DKZ81DEAQrldu9PQmUID8BZln/uH6sJjXvrgIojv65pGIj80KchCQ3OlPzqCXPa6nsG8QyiM2nbBfUiqkNpk7AwQ4NROzDuVhqw6g9M8RbijbGXYYMvwABSZ9qABsYdnjxz4kjmLoOs5Xfx6yGzSx1duYEBio2heo4JMIxHaCVq5wHjNCn6iKKN/tJd1AFOMkcXdC5LVe5Bp68dUEZR1HTMevASLRu4YTW1MWuX+rSWA74QmJg9fSSQJfGOn;24:Xnj+AuqXpRHq2f+1++TkUvusAGGUyoJfQR2BAnyAia23aZsPpWFhqWhmHxTikl5vU/Xg3De+eyG3qPlat2mPBc2SOuEHNN8CGKlYx3/DVgs= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;BY1PR0701MB1862;7:RB1Hq93+R+21QxeKkGO1Q+4yhuFv/0HmXzJ5S5Ke3XkrQseflw7C8lNBL6qRtIcLeRb7Edl07pehhghsrzN5AtjLO7xaNqLmqo1aR/UIKOBA6OTJ1OhMe6Kvyn/ec29OKmUcSUIcvfYLgZgv0n7kzb2y5DqvZLgSh/Q4/BYuMZAaWaDg0qQRGXo662fdPCrVaYCEvI1vV1ti7ugC0JBgRU2BEWZP1dzniTyalyXxol2Xm8G5tnY2PIC142Z62gwt6pzibe/2fU5LTXQqThd1dTXyhHCXFghdmFc/8qxE3I9VW5ofTH2RFRWsLQSkRFrLN6fk0to6Y8tJPB0yk3zYEU5hAOq+CIG9uJR7tE5XBu+y3WYMm7H5WZOYcZX7FxSDssNWW6s1QCFBRexvbv47/scUeoYYTiQNGmD1LuLmp0BgyRYqLyV44oh86A+a4at2GzHSRn2/9Y7UhcloFuRWBC4nhBkGlvLPwUgmRy7MhMYDu4iWoFn+Baxu1Dkg7jajORG7a5sRw66Rho1ai+tB5284YsEbgrq59QRqzBWgJEfurhigvofTh63CmuP4ArBMbMUBbrfBIu/6pQsIrPjhD3cRpMLgq51BXIyYH6snOBeRuK/RQ9BZEQnF1ygLyKWImmqKqb7cnZ16q2z0uWc83+P53JYlDLxUI+yewqztU04tkZZKod7ib0Sq3l/Rm3Vl9YewZcG1Hkq5iYGmfxRi0iZU+90s+8Hduf3blaAQlyHF5DodfUwJiPOWjBlNx+90s7Pu1xDXu1TLnWsH5A/hNyqLgfwK2rtFQQg7zz/8Sbw= X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Jun 2017 15:50:15.3492 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR0701MB1862 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 9607 Lines: 186 This series enables aarch64 with ilp32 mode. As supporting work, it introduces ARCH_32BIT_OFF_T configuration option that is enabled for existing 32-bit architectures but disabled for new arches (so 64-bit off_t userspace type is used by new userspace). Also it deprecates getrlimit and setrlimit syscalls prior to prlimit64. This version is based on linux-next from 2017-06-16. It works with glibc-2.25, and tested with LTP, glibc testsuite, trinity, lmbench, CPUSpec. Patches 1, 2, 3 and 8 are general, and may be applied separately. Kernel, GLIBC and OpenSUSE-based distro: https://github.com/norov/linux/tree/ilp32-20170616.0 https://github.com/norov/glibc/tree/dev9 https://build.opensuse.org/project/show/devel:ARM:Factory:Contrib:ILP32 (GLIBC patches are managed by Steve Ellcey, so my tree is only for reference.) Changes: v3: https://lkml.org/lkml/2014/9/3/704 v4: https://lkml.org/lkml/2015/4/13/691 v5: https://lkml.org/lkml/2015/9/29/911 v6: https://lkml.org/lkml/2016/5/23/661 v7: https://lkml.org/lkml/2017/1/9/213 v8: - off_t referred in patches 2 and 13 stands for userspace type which is underlined in corresponding patch comments and ARCH_32BIT_OFF_T config option description; - __IGNORE_getrlimit and __IGNORE_setrlimit are added to scripts/checksyscalls.sh (patch 3); - for CONFIG_COMPAT, bool changed to def_bool y and 'select COMPAT' is dropped for AARCH32_EL0 and ARM64_ILP32 optiond (patches 5 and 20); - x19 register is used to load TSK_TI_FLAGS in svc path in arch/arm64/kernel/entry.S to avoid register clobbering (patch 14). - ilp32 vdso-related files are syncronized wirh lp64 ones, mostly Makefiles (patch 19); - in arch/arm64/mm/mmap.c, arch_mmap_rnd() swithed to use is_compat_task() (patch 9); - rebased on next-20170616. Andrew Pinski (6): arm64: rename COMPAT to AARCH32_EL0 in Kconfig arm64: ensure the kernel is compiled for LP64 arm64:uapi: set __BITS_PER_LONG correctly for ILP32 and LP64 arm64: ilp32: add sys_ilp32.c and a separate table (in entry.S) to use it arm64: ilp32: introduce ilp32-specific handlers for sigframe and ucontext arm64:ilp32: add ARM64_ILP32 to Kconfig Philipp Tomsich (1): arm64:ilp32: add vdso-ilp32 and use for signal return Yury Norov (13): compat ABI: use non-compat openat and open_by_handle_at variants 32-bit userspace ABI: introduce ARCH_32BIT_OFF_T config option asm-generic: Drop getrlimit and setrlimit syscalls from default list arm64: ilp32: add documentation on the ILP32 ABI for ARM64 thread: move thread bits accessors to separated file arm64: introduce is_a32_task and is_a32_thread (for AArch32 compat) arm64: ilp32: add is_ilp32_compat_{task,thread} and TIF_32BIT_AARCH64 arm64: introduce binfmt_elf32.c arm64: ilp32: introduce binfmt_ilp32.c arm64: ilp32: share aarch32 syscall handlers arm64: signal: share lp64 signal routines to ilp32 arm64: signal32: move ilp32 and aarch32 common code to separated file arm64: ptrace: handle ptrace_request differently for aarch32 and ilp32 Documentation/arm64/ilp32.txt | 45 +++++++ arch/Kconfig | 15 +++ arch/arc/Kconfig | 1 + arch/arc/include/uapi/asm/unistd.h | 1 + arch/arm/Kconfig | 1 + arch/arm64/Kconfig | 17 ++- arch/arm64/Makefile | 8 ++ arch/arm64/include/asm/compat.h | 19 +-- arch/arm64/include/asm/elf.h | 40 ++---- arch/arm64/include/asm/fpsimd.h | 2 +- arch/arm64/include/asm/ftrace.h | 2 +- arch/arm64/include/asm/hwcap.h | 6 +- arch/arm64/include/asm/is_compat.h | 90 ++++++++++++++ arch/arm64/include/asm/memory.h | 5 +- arch/arm64/include/asm/processor.h | 11 +- arch/arm64/include/asm/ptrace.h | 2 +- arch/arm64/include/asm/seccomp.h | 2 +- arch/arm64/include/asm/signal32.h | 9 +- arch/arm64/include/asm/signal32_common.h | 27 ++++ arch/arm64/include/asm/signal_common.h | 33 +++++ arch/arm64/include/asm/signal_ilp32.h | 38 ++++++ arch/arm64/include/asm/syscall.h | 2 +- arch/arm64/include/asm/thread_info.h | 4 +- arch/arm64/include/asm/unistd.h | 6 +- arch/arm64/include/asm/vdso.h | 6 + arch/arm64/include/uapi/asm/bitsperlong.h | 9 +- arch/arm64/include/uapi/asm/unistd.h | 13 ++ arch/arm64/kernel/Makefile | 8 +- arch/arm64/kernel/asm-offsets.c | 9 +- arch/arm64/kernel/binfmt_elf32.c | 37 ++++++ arch/arm64/kernel/binfmt_ilp32.c | 85 +++++++++++++ arch/arm64/kernel/cpufeature.c | 8 +- arch/arm64/kernel/cpuinfo.c | 8 +- arch/arm64/kernel/entry.S | 34 +++++- arch/arm64/kernel/entry32.S | 80 ------------ arch/arm64/kernel/entry32_common.S | 107 ++++++++++++++++ arch/arm64/kernel/entry_ilp32.S | 22 ++++ arch/arm64/kernel/head.S | 2 +- arch/arm64/kernel/hw_breakpoint.c | 8 +- arch/arm64/kernel/perf_regs.c | 2 +- arch/arm64/kernel/process.c | 7 +- arch/arm64/kernel/ptrace.c | 80 ++++++++++-- arch/arm64/kernel/signal.c | 102 ++++++++++------ arch/arm64/kernel/signal32.c | 107 ---------------- arch/arm64/kernel/signal32_common.c | 135 ++++++++++++++++++++ arch/arm64/kernel/signal_ilp32.c | 170 ++++++++++++++++++++++++++ arch/arm64/kernel/sys_ilp32.c | 100 +++++++++++++++ arch/arm64/kernel/traps.c | 5 +- arch/arm64/kernel/vdso-ilp32/.gitignore | 2 + arch/arm64/kernel/vdso-ilp32/Makefile | 80 ++++++++++++ arch/arm64/kernel/vdso-ilp32/vdso-ilp32.S | 33 +++++ arch/arm64/kernel/vdso-ilp32/vdso-ilp32.lds.S | 95 ++++++++++++++ arch/arm64/kernel/vdso.c | 63 ++++++++-- arch/arm64/kernel/vdso/gettimeofday.S | 20 ++- arch/arm64/kernel/vdso/vdso.S | 6 +- arch/arm64/mm/mmap.c | 2 +- arch/blackfin/Kconfig | 1 + arch/c6x/include/uapi/asm/unistd.h | 1 + arch/cris/Kconfig | 1 + arch/frv/Kconfig | 1 + arch/h8300/Kconfig | 1 + arch/h8300/include/uapi/asm/unistd.h | 1 + arch/hexagon/Kconfig | 1 + arch/hexagon/include/uapi/asm/unistd.h | 1 + arch/m32r/Kconfig | 1 + arch/m68k/Kconfig | 1 + arch/metag/Kconfig | 1 + arch/metag/include/uapi/asm/unistd.h | 1 + arch/microblaze/Kconfig | 1 + arch/mips/Kconfig | 1 + arch/mn10300/Kconfig | 1 + arch/nios2/Kconfig | 1 + arch/nios2/include/uapi/asm/unistd.h | 1 + arch/openrisc/Kconfig | 1 + arch/openrisc/include/uapi/asm/unistd.h | 1 + arch/parisc/Kconfig | 1 + arch/powerpc/Kconfig | 1 + arch/score/Kconfig | 1 + arch/score/include/uapi/asm/unistd.h | 1 + arch/sh/Kconfig | 1 + arch/sparc/Kconfig | 1 + arch/tile/Kconfig | 1 + arch/tile/include/uapi/asm/unistd.h | 1 + arch/tile/kernel/compat.c | 3 + arch/unicore32/Kconfig | 1 + arch/unicore32/include/uapi/asm/unistd.h | 1 + arch/x86/Kconfig | 1 + arch/x86/um/Kconfig | 1 + arch/xtensa/Kconfig | 1 + drivers/clocksource/arm_arch_timer.c | 2 +- include/linux/fcntl.h | 2 +- include/linux/thread_bits.h | 63 ++++++++++ include/linux/thread_info.h | 65 ++-------- include/uapi/asm-generic/unistd.h | 10 +- scripts/checksyscalls.sh | 5 + 95 files changed, 1606 insertions(+), 407 deletions(-) create mode 100644 Documentation/arm64/ilp32.txt create mode 100644 arch/arm64/include/asm/is_compat.h create mode 100644 arch/arm64/include/asm/signal32_common.h create mode 100644 arch/arm64/include/asm/signal_common.h create mode 100644 arch/arm64/include/asm/signal_ilp32.h create mode 100644 arch/arm64/kernel/binfmt_elf32.c create mode 100644 arch/arm64/kernel/binfmt_ilp32.c create mode 100644 arch/arm64/kernel/entry32_common.S create mode 100644 arch/arm64/kernel/entry_ilp32.S create mode 100644 arch/arm64/kernel/signal32_common.c create mode 100644 arch/arm64/kernel/signal_ilp32.c create mode 100644 arch/arm64/kernel/sys_ilp32.c create mode 100644 arch/arm64/kernel/vdso-ilp32/.gitignore create mode 100644 arch/arm64/kernel/vdso-ilp32/Makefile create mode 100644 arch/arm64/kernel/vdso-ilp32/vdso-ilp32.S create mode 100644 arch/arm64/kernel/vdso-ilp32/vdso-ilp32.lds.S create mode 100644 include/linux/thread_bits.h -- 2.11.0