Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753750AbdFSPvu (ORCPT ); Mon, 19 Jun 2017 11:51:50 -0400 Received: from mail-sn1nam01on0061.outbound.protection.outlook.com ([104.47.32.61]:36784 "EHLO NAM01-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752081AbdFSPva (ORCPT ); Mon, 19 Jun 2017 11:51:30 -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, Andrew Pinski , Andrew Pinski , Bamvor Jian Zhang Subject: [PATCH 05/20] arm64: rename COMPAT to AARCH32_EL0 in Kconfig Date: Mon, 19 Jun 2017 18:49:48 +0300 Message-Id: <20170619155003.13218-6-ynorov@caviumnetworks.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170619155003.13218-1-ynorov@caviumnetworks.com> References: <20170619155003.13218-1-ynorov@caviumnetworks.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [85.253.137.34] X-ClientProxiedBy: DB6PR02CA0017.eurprd02.prod.outlook.com (10.170.218.158) To BY1PR0701MB1864.namprd07.prod.outlook.com (10.162.143.146) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 2490495d-edf4-4631-9625-08d4b72b0a44 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(201703131423075)(201703031133081);SRVR:BY1PR0701MB1864; X-Microsoft-Exchange-Diagnostics: 1;BY1PR0701MB1864;3:mC9zLTb2GIeO5+EN57ALX1O8/juSPDEU6Ku8FsAvxnvTL8gRoBUhIg6IKzQugRU2OhcsiI1wtHwiY5gSrCZy97YQPMolQAIxg0cGdPl4hB1yfQl9ilV3DA2arTyOcyZK0CQsz+EXfiXxa0H3O5+WfauKpercU8LJJLsCck3d/+ETd57Qe2+Kv8QKiV3GUxi55BcwJqpHoUJVdvjgopTZBt5NzSAczzPGN9sLdsYPNv0gN4d4ZK0Zw3m6ULBIFFkZIymebfGqAkNaJ993rZomjzm37YFWy+D2lX68k56yh/N+GOyC4pOkxa9KRi+c8IVUvSLucgJp9HtJfUxuudm2VA==;25:6iYbI3/i8tJ4/6pNmeZD9cj+BKmAkie7pqewrTk31YDQ2FiXYYiK01fCuYsic/d6fIxx58Dd276erYF13GMduxwyut5iDE998M7TNNDZOzmFLkBMBvU8RG0plfhmNE6xs/8xqRPXb6uLCa+kNcnCxM/wW5uOgfdd1KHB/scONT+xpTbWKgKNYRVpP1LfsKnyq/Xlo0B4VdNHjVocOej3+FAhl1FWU4SgnkKmyUn2juMblzysJMqEXr8xm1SVCSrWCVvR6uLFv5sv09BjpNt9RTffh+TkHe7V8WZryt0djvAhu+sJGfHkECvxBN1YsNiOZPlpDlr/S4IZKaRx/sDmBuv/zSeBWxL9Aa+zwDxmIjRF4pTFny708isiP0NMovyddQSq0Mb0hpcb359kQ14F4k/bpwIE0kvDL5uG4XjOoIIPS1zOPwtXH+qgdk1EOgVDVKATPFNH1+7OSgZeT/iEXzFNuCtF/hQ9T5lJ1SG0o38= X-MS-TrafficTypeDiagnostic: BY1PR0701MB1864: X-Microsoft-Exchange-Diagnostics: 1;BY1PR0701MB1864;31:WVaYQOXJJySj/7nm2dAIPz+4896JnTkgvaLeRTInoBh5ZIxtK9D70tsWQaDybkpVEgJarjbBmvJed6N7IIieOqhhYlJILcBmjzsYqRDLZ1tZ7T5rSSqX0/tkr/PcCcyVWuswJxEuJm6nKfyDNb6pni+2glVh03SaPjBH5bASGBQQsfvPqfBVlvH0L62VSt3Sj7qGVRCkduLwh+S4dcHYGqNLWRYBukNxF/xEUGFdgWPaFu2xU9KfuokcySmMmI4qXW4DcaZyqRdeiPcg/MK33g==;20:JrSlcg8eVDjAwPdiqeDnu+AvOdunkFFZOpf9GrQqQUfy00U/Ik8oM3OmHq7sRJyzAgyQ3Y2ezVFVXUF7prskhZDwluLWGBo6sCdshg7SqjKxIk1YsxnRHl1zL6oUz/q50sGO8cLIbeahZqseXeItFEkdJcGPqeUU05RE20mYTXmv/UcGcFA9niUcc8nbTvbyCUlb0qyVqHJ/yFDEGlkgP/A2m4H6ryLYXeRVf9s1jaRp9L6EPWdZcYJBDozEZ2MpkABLUrvbZ4mRE2lmVF8r/eq0yiMSlUOetFJ9YRLe+qiZSn5DSLntYzyEm5n2IwhPYfcI8oocOB15chVAwvANlaynIFjsH4IiGK+gszbojWzo27NK/OPX7C5eInzP8t1mMDzFxI4wVd2EBj597sQqUJ/tqKyAMuwWIzUqf7sqSQ7n/gshcPasihG2ef2EYkqaOJ7X5pWjW0ChblgfZTNPp1ZQaAHban7/yjwbHd1xuhYArgaNIKQLTixoKqEDcXfh7Mht5Cx8qu7QhS7AdrVyonRPbkca13UX4AVZ12UQFoNub5sdlMpbEQAVx7h496CjOcNwCw+Gk1WGsRF6PcwFC6+OQu9UNvZmy7pLb38nxY8= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(250305191791016)(22074186197030); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(100000703101)(100105400095)(10201501046)(93006095)(3002001)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123555025)(20161123558100)(20161123560025)(20161123564025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:BY1PR0701MB1864;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:BY1PR0701MB1864; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BY1PR0701MB1864;4:ppmQWNsIrPstb7jvJsX7PX2UWTFIwykCHLRfKGs9?= =?us-ascii?Q?yk7MPVfM6B76Ptx07NDDceKIeUOQg6hPHOXLerLfVIDNl0WiRFhtG7OsPt4R?= =?us-ascii?Q?ufQXZzMoiTNrJPjdb3OBqv7h6N6iOf+gMKYk3o6qYYLaHtRvutRRVtbuTXPq?= =?us-ascii?Q?AnNXg3j7EEkeYzPemSPKKlfGv+9JoAKmS6qH3xAa5tBmAw4bBd95MueQu1Sm?= =?us-ascii?Q?0Qh/aknPRyXG2zQzT7WOfx/nX597fFBDeghXg4P0DOrnACvRh+SQo47PdHLr?= =?us-ascii?Q?yjJNwgKvuHshykJAbB8l5YgcL+mYSGGEL0N3Xl4ep4iu5IbGMsfxEC5zulrm?= =?us-ascii?Q?4qyS2t1b2ijld71AoXRC3A17cxlCy/CulBUDQBr1B7FGbsSslejFRN5Z+/xk?= =?us-ascii?Q?a4fTOqV8S1yhixJOHc0ANF2DCK6ufQ9nZPPDWY5EA9+1hQIn52wprxiJDjpO?= =?us-ascii?Q?0u9w24GSKbFAw9EvCWvZGICoVDTVHtkg5BxC7Fzf4irq80YIUOsyPhp3EclI?= =?us-ascii?Q?Td9at5wsvQ8oMi6cEI/k0TuSiwtWaHTHgMaW+zYo7pzOrnLABgs6VFddaLpv?= =?us-ascii?Q?+6aOw00GfcHdV2lZ2nbHAs1lhsbOqMBXk/wdBLjqxsXKmmw5eC61++4vyuj+?= =?us-ascii?Q?VS/wFe4wMHCO6ImBeZOvPKUOFSkJfQZHzlZ9XOBh7kvDlIdViQhIqD4SEKO+?= =?us-ascii?Q?vVlV2XCaUV7U8XuPOkaWtpi1QMoagsgQeT0+pQAoV7hB1E2xvQw6bbWNzVIY?= =?us-ascii?Q?SyxMoiviOF5iDODcfcMkPU71kKTuJqe4YfnEF9phcUjQAtdzhHUC6UsDTINf?= =?us-ascii?Q?RgE4spYuwikrSHzGRgX/EuHH5v78kQ4OJ3ZcHlcW9iz2aPbLwLeFJ2hwrGGQ?= =?us-ascii?Q?aaWMo1FXsNVXkgIZhsBGL5TH0tSBF21IbyO+bVmIDL7mMc4wzOoQ3DQQJSNR?= =?us-ascii?Q?5R9J6DsS8ZfzG5fxiTygAzVZAe315F9ZBaQ+PsHeRwlgvbVZVd890AabsldN?= =?us-ascii?Q?qbEEqodqamti5lIBM/q7uYSuOXfp/cSaNCvYGWXkDI2RGPn2dOLoT+0uF8cS?= =?us-ascii?Q?OR2xORqaBwBXdul7HHKBlZMVftz1qKeQT1evNsgflVQBDJwyfu/bOewOPEbz?= =?us-ascii?Q?lLHe4vNafkPdxvpfsPAgK1NDK2t8COSZsobWSxpRcP9eHUE+Y3sF59xPeCQT?= =?us-ascii?Q?bqAziKz5Y4frapa6i6PN1qJQKKJ4KE82mMvN?= X-Forefront-PRVS: 0343AC1D30 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(6069001)(39840400002)(39450400003)(39850400002)(39410400002)(39400400002)(50226002)(33646002)(7416002)(7406005)(6666003)(5003940100001)(76176999)(305945005)(42882006)(2950100002)(6486002)(8676002)(50986999)(42186005)(7736002)(76506005)(50466002)(5660300001)(81166006)(48376002)(6306002)(25786009)(54906002)(478600001)(189998001)(66066001)(1076002)(47776003)(575784001)(72206003)(3846002)(6116002)(36756003)(38730400002)(53936002)(2906002)(6496005);DIR:OUT;SFP:1101;SCL:1;SRVR:BY1PR0701MB1864;H:localhost;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BY1PR0701MB1864;23:702PN9a/bGpqweQJ2U6K5D4z75dY+sNRD517Zvl?= =?us-ascii?Q?jmOfA2EDeuacLjd0tQHpx7btiXXZZc5cOAnKORK/mBZvvXQFadXIGZUnktEQ?= =?us-ascii?Q?UudQZzEoWlUyDHSyOtFbL06W9RTuo7fX+VDgE6hGzVvWVg3OAmSbAYVmUCGY?= =?us-ascii?Q?OzlmRRCWACCrW0JdgQuO+uzs7wHO3kBAEWOFl/m3qBdobA9iiaTQ7dhO6Oy+?= =?us-ascii?Q?86KPxMjAXOPPVBnpeyXMegqhBKheIUKyfMb4p4uSoOhduXy9lZP2/v4V9XPR?= =?us-ascii?Q?4e7fXKXej5QrJm4q+GdJDkhlkbrM6Wf4zXLBJ+5ZMrqS3jv0XSBpS/H5EtF4?= =?us-ascii?Q?z4/jGiqmGRemkEO+U7Hy6mP5Gm1VQ29D4rBCgjkSkxMivME7ywBYStEhtTKN?= =?us-ascii?Q?GhF5J12IVAy3JLM45wqXsjQXOBaQJbYDT3GmVMewesp/v05YFG2LWjcpQq8B?= =?us-ascii?Q?1TR46BQCVEDYJrYKgh0Z6RtjundgCGbwz2eqHvfFXJAtrZ5KO03YyCOaExeV?= =?us-ascii?Q?D+rG3VQo1UAA6WlpyyBI2mO/slYUVwuSxvwOS9jbcjxRSgIHylFFSxINHnBT?= =?us-ascii?Q?onM5ZzEK/ORf0qiJ04wfoq9D8HIA3yhwLwWRynZ/ETsNuuYoD4S48528ZvIl?= =?us-ascii?Q?d5bPulkfFUhkbpJAMq27ExHQ9QKxbOrUQ4bPXMO6XHRzzOUTV2/HP0R4Divu?= =?us-ascii?Q?IoPZoya+6vpRsdGFxxUK5oA/C9r95JeqPrGV9+N2XdfoNZLuZExIk/T85dgQ?= =?us-ascii?Q?TFnhe4fx94bOs8W8Y9LZPTka6CXwpOaR08FeNQArePKZh6MubFJS+OxC9pYd?= =?us-ascii?Q?0exgcveNJ0Y0NnPtNHqVOfweS84cJTdazl8DSWNW+cgDRrsxGGQwZAW9fkKX?= =?us-ascii?Q?A1l/MQzI58Y04tDt0VQVofZbs8g+xPswjTFBpX4pjRtLR/v2SbcAmOqqDyNc?= =?us-ascii?Q?0WYeK+OexIHo9onU+C2HFVG1x1ehpTQi0XbSBy2B+pQkXXZcUhTblDbr0kya?= =?us-ascii?Q?eJJU54kioN1C1/3zKqq1wfGxMLgisWLNPd8hbwfuyCyujS5LKVa8bEJJUWZw?= =?us-ascii?Q?1Yiy1jazRJSsGkYhlGcBXghCMbMjvqrz8FGXP7GftvIedRZWCYZUrvYL4DIz?= =?us-ascii?Q?14ofOGqqJSD2GjMC+ihNf95fBLWjciyff?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BY1PR0701MB1864;6:4QHP+QgxhIplKSmU1pXqZf9ln8Wea37l7/AC/Ivb?= =?us-ascii?Q?Tm+NFpNoijJixIrOZn32Klh4ZR6C88+D6O90aOw3xqJviLu9I/H6N75QRGGy?= =?us-ascii?Q?+dMpvnsDbtVpGXfm/zsQWdWd/sz2+2/zh3vr3Sw/fnWZr1MiLCl+pbfz0GzB?= =?us-ascii?Q?yRH3UghWS43xv8zuNjOA4TjtKuJcPfEWfshgM81TzZuBytc8RygRE38mysfm?= =?us-ascii?Q?YCKWh8WSlOWaO2rsM4WLQMPLZO+Noxe0OEPAOVqnR4APq4/mC/BdUgHxoMGx?= =?us-ascii?Q?XsXXBomoOj3Nc/YPK3p9MjSGPPMxnGMppz4HDmDtlye10yJkXYHbE4EidUiD?= =?us-ascii?Q?1SDOjDWIbQlu8IWSoxDII619g31crA/TT4NgGXUD6bF2PgsDCFhhN17xbRb4?= =?us-ascii?Q?EvnM4O2yOWSCZmRsBgF34tCEngSf7Jx2qROW10w0xjd6fzO5jXLReCO25IjM?= =?us-ascii?Q?3mvJUxnStzCiFYR2MwBZYglG1N0HoS2eWhfwzXzNvxrA9cKF+Z39ku6AyucR?= =?us-ascii?Q?L4HV+ZKFIY5YoRBoJENx+eC+sahy2kJSEepyctKloe9K4U0128T+0hb5BcnJ?= =?us-ascii?Q?gvV5KfS9kiz1jT7Lu5oHPAmjwAL0cTSXd6bu8N53Qe5/ELu/MoB672d6dtN5?= =?us-ascii?Q?TbN4bSYku8keE6PXvTYi7PBdpNduyCJH0yaqsFNa3PmO8wGzE5r3Jbxgb63T?= =?us-ascii?Q?fcIOMavm4pG6EY/uxQu/XF7a9ioyM7JsgV1j4rZ/chTuCHdZgmsV3Q0HEyAN?= =?us-ascii?Q?ibebJHjc1hlq4g9rnXAGTxMa8jRZ6ZZ0GTHEXrwlYFVPNslH/7I9ZA/4Ktxy?= =?us-ascii?Q?RbGmcTVp519ySEDMTKNJ5CeLZNEBMe/IXaD9rSTc3nKoRHTGM3312U4FU1Zk?= =?us-ascii?Q?8oavYKgld7sYwrj3x1fP6W1j+VFCGtw6kmFJzwFSKgtemiRRkyITml8eptE6?= =?us-ascii?Q?Y1KkgLf0F7BxnWUFAL1MH57XX1iB/H4rnBXOE8MLx2OleweKizpao+AyHl3b?= =?us-ascii?Q?py0=3D?= X-Microsoft-Exchange-Diagnostics: 1;BY1PR0701MB1864;5:MvZLyhZgAnNmDpBoKqUDqI9Kva5kQMYYQc7MqWgPTDXfLNqxKP2Efi8wthpgKfJCf/cmQKEIy6vQyA2Jd0JZLV2irhTU+ccv2Xydgac9MsjAoRr/1+XAVtU7byMkzasFPYPmu+AL2AQ77wUO7AC7mUJBjAs0k4EU9LAxaMbTg93QtOAJjDI75j3ZqHrijaej07a6Xhk1CLZFs6SdO1u1kMnC88k5sOWSndipltLM/lOmSnZ5gjUM8tu/7aXK2c5k/hgbymoswX0aQAewUGcDPwHSgJOWkiiE5rXPTHlCUvg6u5/4quWvKC3IwxuhwlNWG8SwW9euPWT9LgC7f1b9WYPwZtspapThu6KeybyjzcN/ZhSXNRXnucFgVRqvy5eJHVcAHULmg3NF/8ghqpEOT+RNVz5t15EdeVx/EmL7Mq1+bXlV0KMBNTsB0yGZbPZWQvXnmYCeOydtehfTF134gc76CgD6dsUTvAgQ2+J7FESOATEC+ZFW+Klxx2CHm0xc;24:J3hNAMDeCvXftHfa8mNqGofeiJQ/1r03qlUNLWsYgWbSbTS2afssKku8AHzTyMtrKht3v6sfgUlxhkU2NlOPvlmvtnBCqoSGiTq6/8o8PfU= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;BY1PR0701MB1864;7:SZsWRJPXBEkNMx5FPUbv8bt+p4uKV1cHApnqhoNF+pF7yeBMQXejVZFDrx9sIPMMp70i+QmpJE6ZGCRtug81wXm5sR0/BVImXO945NQLGiRhQDOuQu7vDlF+oCQs198G+jdh/JBjRHL2r/dUQwfw+ZeuUasDQcT8nE8DbAHhvRuMdgXd7gaESJmRV3qW0rJi4b2gDqzqSOuCzjyuT7ZnXonaWIFGNr41uYHtlymLA8iPFfpEPZMvHa/69V4heaL84aFY245Z9ZsTp/8hvy7VncsETOXBBAs4a8x4CrZFbQ/ZD6CzdYFyLMnoI22Af7L2ov3zXbx00zvd3ROZU8zs4cDmBs7Dd85jt6KZjx/hkYXfaDGv5ryJZQkKKBfBV0zaSEq9tfSNknBdAOxTdl8uN+cdQbn5VLmBTOpFa25RDuAy1FeDj+ogzg/fFTQO+g0m1Onimdc+jJZ3Wuz+6kXEJ+aGkuNbXT3bEbILBUSD0svKgyswkxAX13KdLRafvaTVIo2IjYtfqMfaopk9zEPkapGYD4UapkNW2wStV+abuY39WaKqyk0Fox6FUPhs49VLMMGTNJh1RHD3Q+WUOsQsPN8B8WSxPEj+PngCYCMgQ7CCRfWrc4MTkf5pi6UcFftlu4AGV31zABt8PddkKn0pjRpMGC0hJ847PPW7bxSQxSotTfoT9VMXclCS8jOdS4S57FYUdMbuSIXFWwiIBQNP6Rpn25KMC8S4zSJ2V5NrUDOE6SouJkKCrZxwsKHJG+XE1TuYdBrz1KUA9DOxQgZb0v9TrJU9AQ5jIsoXfaAjRPY= X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Jun 2017 15:51:24.5607 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR0701MB1864 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 14833 Lines: 437 From: Andrew Pinski In this patchset ILP32 ABI support is added. Additionally to AARCH32, which is binary-compatible with ARM, ILP32 is (mostly) ABI-compatible. >From now, AARCH32_EL0 (former COMPAT) config option means the support of AARCH32 userspace, and ARM64_ILP32 - support of ILP32 ABI (see following patches), and COMPAT indicates that one of them or both is enabled. Where needed, CONFIG_COMPAT is changed over to use CONFIG_AARCH32_EL0 instead Reviewed-by: David Daney Signed-off-by: Andrew Pinski Signed-off-by: Yury Norov Signed-off-by: Philipp Tomsich Signed-off-by: Christoph Muellner Signed-off-by: Bamvor Jian Zhang --- arch/arm64/Kconfig | 9 +++++++-- arch/arm64/include/asm/fpsimd.h | 2 +- arch/arm64/include/asm/hwcap.h | 4 ++-- arch/arm64/include/asm/processor.h | 6 +++--- arch/arm64/include/asm/ptrace.h | 2 +- arch/arm64/include/asm/seccomp.h | 2 +- arch/arm64/include/asm/signal32.h | 6 ++++-- arch/arm64/include/asm/unistd.h | 2 +- arch/arm64/kernel/Makefile | 2 +- arch/arm64/kernel/asm-offsets.c | 2 +- arch/arm64/kernel/cpufeature.c | 8 ++++---- arch/arm64/kernel/cpuinfo.c | 8 ++++---- arch/arm64/kernel/entry.S | 6 +++--- arch/arm64/kernel/head.S | 2 +- arch/arm64/kernel/ptrace.c | 8 ++++---- arch/arm64/kernel/traps.c | 2 +- arch/arm64/kernel/vdso.c | 4 ++-- drivers/clocksource/arm_arch_timer.c | 2 +- 18 files changed, 42 insertions(+), 35 deletions(-) diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index 30cadd9a1dab..8713a2807582 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -407,7 +407,7 @@ config ARM64_ERRATUM_834220 config ARM64_ERRATUM_845719 bool "Cortex-A53: 845719: a load might read incorrect data" - depends on COMPAT + depends on AARCH32_EL0 default y help This option adds an alternative code sequence to work around ARM @@ -800,7 +800,7 @@ config FORCE_MAX_ZONEORDER menuconfig ARMV8_DEPRECATED bool "Emulate deprecated/obsolete ARMv8 instructions" - depends on COMPAT + depends on AARCH32_EL0 help Legacy software support may require certain instructions that have been deprecated or obsoleted in the architecture. @@ -1078,7 +1078,12 @@ menu "Userspace binary formats" source "fs/Kconfig.binfmt" config COMPAT + def_bool y + depends on AARCH32_EL0 + +config AARCH32_EL0 bool "Kernel support for 32-bit EL0" + def_bool y depends on ARM64_4K_PAGES || EXPERT select COMPAT_BINFMT_ELF if BINFMT_ELF select HAVE_UID16 diff --git a/arch/arm64/include/asm/fpsimd.h b/arch/arm64/include/asm/fpsimd.h index 50f559f574fe..63b19f128c6c 100644 --- a/arch/arm64/include/asm/fpsimd.h +++ b/arch/arm64/include/asm/fpsimd.h @@ -52,7 +52,7 @@ struct fpsimd_partial_state { }; -#if defined(__KERNEL__) && defined(CONFIG_COMPAT) +#if defined(__KERNEL__) && defined(CONFIG_AARCH32_EL0) /* Masks for extracting the FPSR and FPCR from the FPSCR */ #define VFP_FPSCR_STAT_MASK 0xf800009f #define VFP_FPSCR_CTRL_MASK 0x07f79f00 diff --git a/arch/arm64/include/asm/hwcap.h b/arch/arm64/include/asm/hwcap.h index 400b80b49595..2c7fc5d89813 100644 --- a/arch/arm64/include/asm/hwcap.h +++ b/arch/arm64/include/asm/hwcap.h @@ -46,7 +46,7 @@ */ #define ELF_HWCAP (elf_hwcap) -#ifdef CONFIG_COMPAT +#ifdef CONFIG_AARCH32_EL0 #define COMPAT_ELF_HWCAP (compat_elf_hwcap) #define COMPAT_ELF_HWCAP2 (compat_elf_hwcap2) extern unsigned int compat_elf_hwcap, compat_elf_hwcap2; @@ -54,7 +54,7 @@ extern unsigned int compat_elf_hwcap, compat_elf_hwcap2; enum { CAP_HWCAP = 1, -#ifdef CONFIG_COMPAT +#ifdef CONFIG_AARCH32_EL0 CAP_COMPAT_HWCAP, CAP_COMPAT_HWCAP2, #endif diff --git a/arch/arm64/include/asm/processor.h b/arch/arm64/include/asm/processor.h index 9428b93fefb2..2bbbd33549c0 100644 --- a/arch/arm64/include/asm/processor.h +++ b/arch/arm64/include/asm/processor.h @@ -81,7 +81,7 @@ struct cpu_context { struct thread_struct { struct cpu_context cpu_context; /* cpu context */ unsigned long tp_value; /* TLS register */ -#ifdef CONFIG_COMPAT +#ifdef CONFIG_AARCH32_EL0 unsigned long tp2_value; #endif struct fpsimd_state fpsimd_state; @@ -90,7 +90,7 @@ struct thread_struct { struct debug_info debug; /* debugging */ }; -#ifdef CONFIG_COMPAT +#ifdef CONFIG_AARCH32_EL0 #define task_user_tls(t) \ ({ \ unsigned long *__tls; \ @@ -121,7 +121,7 @@ static inline void start_thread(struct pt_regs *regs, unsigned long pc, regs->sp = sp; } -#ifdef CONFIG_COMPAT +#ifdef CONFIG_AARCH32_EL0 static inline void compat_start_thread(struct pt_regs *regs, unsigned long pc, unsigned long sp) { diff --git a/arch/arm64/include/asm/ptrace.h b/arch/arm64/include/asm/ptrace.h index 11403fdd0a50..d668b3900b52 100644 --- a/arch/arm64/include/asm/ptrace.h +++ b/arch/arm64/include/asm/ptrace.h @@ -125,7 +125,7 @@ struct pt_regs { #define arch_has_single_step() (1) -#ifdef CONFIG_COMPAT +#ifdef CONFIG_AARCH32_EL0 #define compat_thumb_mode(regs) \ (((regs)->pstate & COMPAT_PSR_T_BIT)) #else diff --git a/arch/arm64/include/asm/seccomp.h b/arch/arm64/include/asm/seccomp.h index c76fac979629..00ef0bf63230 100644 --- a/arch/arm64/include/asm/seccomp.h +++ b/arch/arm64/include/asm/seccomp.h @@ -13,7 +13,7 @@ #include -#ifdef CONFIG_COMPAT +#ifdef CONFIG_AARCH32_EL0 #define __NR_seccomp_read_32 __NR_compat_read #define __NR_seccomp_write_32 __NR_compat_write #define __NR_seccomp_exit_32 __NR_compat_exit diff --git a/arch/arm64/include/asm/signal32.h b/arch/arm64/include/asm/signal32.h index eeaa97559bab..e68fcce538e1 100644 --- a/arch/arm64/include/asm/signal32.h +++ b/arch/arm64/include/asm/signal32.h @@ -17,7 +17,9 @@ #define __ASM_SIGNAL32_H #ifdef __KERNEL__ -#ifdef CONFIG_COMPAT + +#ifdef CONFIG_AARCH32_EL0 + #include #define AARCH32_KERN_SIGRET_CODE_OFFSET 0x500 @@ -47,6 +49,6 @@ static inline int compat_setup_rt_frame(int usig, struct ksignal *ksig, sigset_t static inline void compat_setup_restart_syscall(struct pt_regs *regs) { } -#endif /* CONFIG_COMPAT */ +#endif /* CONFIG_AARCH32_EL0 */ #endif /* __KERNEL__ */ #endif /* __ASM_SIGNAL32_H */ diff --git a/arch/arm64/include/asm/unistd.h b/arch/arm64/include/asm/unistd.h index a0baa9af5487..99d29290c98b 100644 --- a/arch/arm64/include/asm/unistd.h +++ b/arch/arm64/include/asm/unistd.h @@ -13,7 +13,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -#ifdef CONFIG_COMPAT +#ifdef CONFIG_AARCH32_EL0 #define __ARCH_WANT_COMPAT_STAT64 #define __ARCH_WANT_SYS_GETHOSTNAME #define __ARCH_WANT_SYS_PAUSE diff --git a/arch/arm64/kernel/Makefile b/arch/arm64/kernel/Makefile index f2b4e816b6de..49fefa42d136 100644 --- a/arch/arm64/kernel/Makefile +++ b/arch/arm64/kernel/Makefile @@ -27,7 +27,7 @@ OBJCOPYFLAGS := --prefix-symbols=__efistub_ $(obj)/%.stub.o: $(obj)/%.o FORCE $(call if_changed,objcopy) -arm64-obj-$(CONFIG_COMPAT) += sys32.o kuser32.o signal32.o \ +arm64-obj-$(CONFIG_AARCH32_EL0) += sys32.o kuser32.o signal32.o \ sys_compat.o entry32.o arm64-obj-$(CONFIG_FUNCTION_TRACER) += ftrace.o entry-ftrace.o arm64-obj-$(CONFIG_MODULES) += arm64ksyms.o module.o diff --git a/arch/arm64/kernel/asm-offsets.c b/arch/arm64/kernel/asm-offsets.c index b3bb7ef97bc8..aec5b6cedc7c 100644 --- a/arch/arm64/kernel/asm-offsets.c +++ b/arch/arm64/kernel/asm-offsets.c @@ -67,7 +67,7 @@ int main(void) DEFINE(S_X28, offsetof(struct pt_regs, regs[28])); DEFINE(S_LR, offsetof(struct pt_regs, regs[30])); DEFINE(S_SP, offsetof(struct pt_regs, sp)); -#ifdef CONFIG_COMPAT +#ifdef CONFIG_AARCH32_EL0 DEFINE(S_COMPAT_SP, offsetof(struct pt_regs, compat_sp)); #endif DEFINE(S_PSTATE, offsetof(struct pt_regs, pstate)); diff --git a/arch/arm64/kernel/cpufeature.c b/arch/arm64/kernel/cpufeature.c index 55d5c72a507d..960b4fe86ebd 100644 --- a/arch/arm64/kernel/cpufeature.c +++ b/arch/arm64/kernel/cpufeature.c @@ -36,7 +36,7 @@ unsigned long elf_hwcap __read_mostly; EXPORT_SYMBOL_GPL(elf_hwcap); -#ifdef CONFIG_COMPAT +#ifdef CONFIG_AARCH32_EL0 #define COMPAT_ELF_HWCAP_DEFAULT \ (COMPAT_HWCAP_HALF|COMPAT_HWCAP_THUMB|\ COMPAT_HWCAP_FAST_MULT|COMPAT_HWCAP_EDSP|\ @@ -904,7 +904,7 @@ static const struct arm64_cpu_capabilities arm64_elf_hwcaps[] = { }; static const struct arm64_cpu_capabilities compat_elf_hwcaps[] = { -#ifdef CONFIG_COMPAT +#ifdef CONFIG_AARCH32_EL0 HWCAP_CAP(SYS_ID_ISAR5_EL1, ID_ISAR5_AES_SHIFT, FTR_UNSIGNED, 2, CAP_COMPAT_HWCAP2, COMPAT_HWCAP2_PMULL), HWCAP_CAP(SYS_ID_ISAR5_EL1, ID_ISAR5_AES_SHIFT, FTR_UNSIGNED, 1, CAP_COMPAT_HWCAP2, COMPAT_HWCAP2_AES), HWCAP_CAP(SYS_ID_ISAR5_EL1, ID_ISAR5_SHA1_SHIFT, FTR_UNSIGNED, 1, CAP_COMPAT_HWCAP2, COMPAT_HWCAP2_SHA1), @@ -920,7 +920,7 @@ static void __init cap_set_elf_hwcap(const struct arm64_cpu_capabilities *cap) case CAP_HWCAP: elf_hwcap |= cap->hwcap; break; -#ifdef CONFIG_COMPAT +#ifdef CONFIG_AARCH32_EL0 case CAP_COMPAT_HWCAP: compat_elf_hwcap |= (u32)cap->hwcap; break; @@ -943,7 +943,7 @@ static bool cpus_have_elf_hwcap(const struct arm64_cpu_capabilities *cap) case CAP_HWCAP: rc = (elf_hwcap & cap->hwcap) != 0; break; -#ifdef CONFIG_COMPAT +#ifdef CONFIG_AARCH32_EL0 case CAP_COMPAT_HWCAP: rc = (compat_elf_hwcap & (u32)cap->hwcap) != 0; break; diff --git a/arch/arm64/kernel/cpuinfo.c b/arch/arm64/kernel/cpuinfo.c index 68b1f364c515..024d7e81aa33 100644 --- a/arch/arm64/kernel/cpuinfo.c +++ b/arch/arm64/kernel/cpuinfo.c @@ -71,7 +71,7 @@ static const char *const hwcap_str[] = { NULL }; -#ifdef CONFIG_COMPAT +#ifdef CONFIG_AARCH32_EL0 static const char *const compat_hwcap_str[] = { "swp", "half", @@ -106,7 +106,7 @@ static const char *const compat_hwcap2_str[] = { "crc32", NULL }; -#endif /* CONFIG_COMPAT */ +#endif /* CONFIG_AARCH32_EL0 */ static int c_show(struct seq_file *m, void *v) { @@ -139,7 +139,7 @@ static int c_show(struct seq_file *m, void *v) */ seq_puts(m, "Features\t:"); if (compat) { -#ifdef CONFIG_COMPAT +#ifdef CONFIG_AARCH32_EL0 for (j = 0; compat_hwcap_str[j]; j++) if (compat_elf_hwcap & (1 << j)) seq_printf(m, " %s", compat_hwcap_str[j]); @@ -147,7 +147,7 @@ static int c_show(struct seq_file *m, void *v) for (j = 0; compat_hwcap2_str[j]; j++) if (compat_elf_hwcap2 & (1 << j)) seq_printf(m, " %s", compat_hwcap2_str[j]); -#endif /* CONFIG_COMPAT */ +#endif /* CONFIG_AARCH32_EL0 */ } else { for (j = 0; hwcap_str[j]; j++) if (elf_hwcap & (1 << j)) diff --git a/arch/arm64/kernel/entry.S b/arch/arm64/kernel/entry.S index b738880350f9..279bc2ab10c3 100644 --- a/arch/arm64/kernel/entry.S +++ b/arch/arm64/kernel/entry.S @@ -330,7 +330,7 @@ ENTRY(vectors) ventry el0_fiq_invalid // FIQ 64-bit EL0 ventry el0_error_invalid // Error 64-bit EL0 -#ifdef CONFIG_COMPAT +#ifdef CONFIG_AARCH32_EL0 ventry el0_sync_compat // Synchronous 32-bit EL0 ventry el0_irq_compat // IRQ 32-bit EL0 ventry el0_fiq_invalid_compat // FIQ 32-bit EL0 @@ -370,7 +370,7 @@ el0_error_invalid: inv_entry 0, BAD_ERROR ENDPROC(el0_error_invalid) -#ifdef CONFIG_COMPAT +#ifdef CONFIG_AARCH32_EL0 el0_fiq_invalid_compat: inv_entry 0, BAD_FIQ, 32 ENDPROC(el0_fiq_invalid_compat) @@ -539,7 +539,7 @@ el0_sync: b.ge el0_dbg b el0_inv -#ifdef CONFIG_COMPAT +#ifdef CONFIG_AARCH32_EL0 .align 6 el0_sync_compat: kernel_entry 0, 32 diff --git a/arch/arm64/kernel/head.S b/arch/arm64/kernel/head.S index 973df7de7bf8..3f64dd138782 100644 --- a/arch/arm64/kernel/head.S +++ b/arch/arm64/kernel/head.S @@ -461,7 +461,7 @@ set_hcr: msr vpidr_el2, x0 msr vmpidr_el2, x1 -#ifdef CONFIG_COMPAT +#ifdef CONFIG_AARCH32_EL0 msr hstr_el2, xzr // Disable CP15 traps to EL2 #endif diff --git a/arch/arm64/kernel/ptrace.c b/arch/arm64/kernel/ptrace.c index c142459a88f3..da908f9a1e05 100644 --- a/arch/arm64/kernel/ptrace.c +++ b/arch/arm64/kernel/ptrace.c @@ -184,7 +184,7 @@ static void ptrace_hbptriggered(struct perf_event *bp, .si_addr = (void __user *)(bkpt->trigger), }; -#ifdef CONFIG_COMPAT +#ifdef CONFIG_AARCH32_EL0 int i; if (!is_compat_task()) @@ -766,7 +766,7 @@ static const struct user_regset_view user_aarch64_view = { .regsets = aarch64_regsets, .n = ARRAY_SIZE(aarch64_regsets) }; -#ifdef CONFIG_COMPAT +#ifdef CONFIG_AARCH32_EL0 #include enum compat_regset { @@ -1301,11 +1301,11 @@ long compat_arch_ptrace(struct task_struct *child, compat_long_t request, return ret; } -#endif /* CONFIG_COMPAT */ +#endif /* CONFIG_AARCH32_EL0 */ const struct user_regset_view *task_user_regset_view(struct task_struct *task) { -#ifdef CONFIG_COMPAT +#ifdef CONFIG_AARCH32_EL0 /* * Core dumping of 32-bit tasks or compat ptrace requests must use the * user_aarch32_view compatible with arm32. Native ptrace requests on diff --git a/arch/arm64/kernel/traps.c b/arch/arm64/kernel/traps.c index 3ebfb1d00b53..287a21ee39b3 100644 --- a/arch/arm64/kernel/traps.c +++ b/arch/arm64/kernel/traps.c @@ -576,7 +576,7 @@ long compat_arm_syscall(struct pt_regs *regs); asmlinkage long do_ni_syscall(struct pt_regs *regs) { -#ifdef CONFIG_COMPAT +#ifdef CONFIG_AARCH32_EL0 long ret; if (is_compat_task()) { ret = compat_arm_syscall(regs); diff --git a/arch/arm64/kernel/vdso.c b/arch/arm64/kernel/vdso.c index ae35f1855e06..a9f24184da38 100644 --- a/arch/arm64/kernel/vdso.c +++ b/arch/arm64/kernel/vdso.c @@ -49,7 +49,7 @@ static union { } vdso_data_store __page_aligned_data; struct vdso_data *vdso_data = &vdso_data_store.data; -#ifdef CONFIG_COMPAT +#ifdef CONFIG_AARCH32_EL0 /* * Create and map the vectors page for AArch32 tasks. */ @@ -108,7 +108,7 @@ int aarch32_setup_vectors_page(struct linux_binprm *bprm, int uses_interp) return PTR_ERR_OR_ZERO(ret); } -#endif /* CONFIG_COMPAT */ +#endif /* CONFIG_AARCH32_EL0 */ static struct vm_special_mapping vdso_spec[2] __ro_after_init = { { diff --git a/drivers/clocksource/arm_arch_timer.c b/drivers/clocksource/arm_arch_timer.c index a89d41cff915..8e04136b304b 100644 --- a/drivers/clocksource/arm_arch_timer.c +++ b/drivers/clocksource/arm_arch_timer.c @@ -733,7 +733,7 @@ static void arch_timer_evtstrm_enable(int divider) | ARCH_TIMER_VIRT_EVT_EN; arch_timer_set_cntkctl(cntkctl); elf_hwcap |= HWCAP_EVTSTRM; -#ifdef CONFIG_COMPAT +#ifdef CONFIG_AARCH32_EL0 compat_elf_hwcap |= COMPAT_HWCAP_EVTSTRM; #endif } -- 2.11.0