From patchwork Sun Jun 4 11:59:50 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yury Norov X-Patchwork-Id: 101352 Delivered-To: patch@linaro.org Received: by 10.140.91.77 with SMTP id y71csp494281qgd; Sun, 4 Jun 2017 05:01:24 -0700 (PDT) X-Received: by 10.84.216.88 with SMTP id f24mr9779690plj.103.1496577684572; Sun, 04 Jun 2017 05:01:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1496577684; cv=none; d=google.com; s=arc-20160816; b=hMM/rxjnPMqrYzuN9cJGe1mKm1VMCUp/GFL48BarBBA2qcjsKuCH8qsx/GwGaRqRpB JoI8A6r5dqYHJB6hNyN2gwMxuzeEUTewripPyyroMntF882olMMZfSlwMEEfxxWBm8gp TLwqhkT8txombu5C4ySfKVPWU7w72HDIk2REsZGUE4NtqaVRfYshpeusYVbtNJ5AdLK1 cIu5kpDJE4hMm+TDOmmi5jLIKYQxD0eCx1cORwmTbV5SZ71cd80XjPP3I/lfaRaMNRQp 2A4JPDIBp+h3jEll7mZNYGZhXeXxytOrShAyUA4Md9u+LENimEHxCGX6ILhhaKuftrUz 9/jQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:spamdiagnosticmetadata :spamdiagnosticoutput:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature:arc-authentication-results; bh=u+NYQ9ZsHAXsmHHyUoglUo0bwVFwaU6oSS4JD+i/bvc=; b=KHX0al8cDeFxS2gtp5Q4/ih6lnlafeLrTXp32g7LZnu+pp81U79giwmqqNf1j8/jQ5 g9OlnUh90abVW2Le2Znu0udoNS07IhB6eIu8HKDa9tK3KL0OhBM6qzO8uc0onwHsCmQ6 z/JP+r/bwF45/N87lELqkkr44f07sEzM9Nj4vjRORCtTIieTZYka+xDvL3fg4K4dAtca +gli+eAPO6NLB8qdnxAEZJZD1rY0Zbp1gxWih8sWYFCxjqFem7Nmz/5CS7OOhclxUeg6 NiUrOdik1WDsvsBxHjMIIbLEhN4bVwBzVkWaOlA4X5RiEmDHtUkgRe8kNEaosafeTvV+ FvaA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@CAVIUMNETWORKS.onmicrosoft.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a7si28090180pfa.328.2017.06.04.05.01.24; Sun, 04 Jun 2017 05:01:24 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@CAVIUMNETWORKS.onmicrosoft.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751235AbdFDMAv (ORCPT + 25 others); Sun, 4 Jun 2017 08:00:51 -0400 Received: from mail-cys01nam02on0075.outbound.protection.outlook.com ([104.47.37.75]:51452 "EHLO NAM02-CY1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751139AbdFDMAn (ORCPT ); Sun, 4 Jun 2017 08:00:43 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=u+NYQ9ZsHAXsmHHyUoglUo0bwVFwaU6oSS4JD+i/bvc=; b=Fm8dkC9E3ihJowa1fJw5bSAT+PyJRQa8tiEZwh32JaKa36XoTfn+NoT143fIvSXjOrkHt0aVF24C7QVVoFZGxqsLNLbVQNPp3zfD3yGIbKzA+lVLQi18fvxWnQrDzN8fnOuXepltH7AB27ThvnshCssFszPAtjBtsy4PTQePMfI= Authentication-Results: arm.com; dkim=none (message not signed) header.d=none; arm.com; dmarc=none action=none header.from=caviumnetworks.com; Received: from localhost (176.59.55.28) by BY1PR0701MB1271.namprd07.prod.outlook.com (10.160.108.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1143.10; Sun, 4 Jun 2017 12:00:38 +0000 From: Yury Norov To: Catalin Marinas , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, Arnd Bergmann Cc: Yury Norov , Andrew Pinski , Andrew Pinski , Adam Borowski , Chris Metcalf , Steve Ellcey , Maxim Kuvyrkov , Ramana Radhakrishnan , Florian Weimer , Bamvor Zhangjian , Andreas Schwab , Chris Metcalf , Heiko Carstens , schwidefsky@de.ibm.com, broonie@kernel.org, Joseph Myers , christoph.muellner@theobroma-systems.com, szabolcs.nagy@arm.com, klimov.linux@gmail.com, Nathan_Lynch@mentor.com, agraf@suse.de, Prasun.Kapoor@caviumnetworks.com, geert@linux-m68k.org, philipp.tomsich@theobroma-systems.com, manuel.montezelo@gmail.com, linyongting@huawei.com, davem@davemloft.net, zhouchengming1@huawei.com Subject: [PATCH 01/20] compat ABI: use non-compat openat and open_by_handle_at variants Date: Sun, 4 Jun 2017 14:59:50 +0300 Message-Id: <20170604120009.342-2-ynorov@caviumnetworks.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170604120009.342-1-ynorov@caviumnetworks.com> References: <20170604120009.342-1-ynorov@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [176.59.55.28] X-ClientProxiedBy: HE1PR09CA0078.eurprd09.prod.outlook.com (10.174.50.150) To BY1PR0701MB1271.namprd07.prod.outlook.com (10.160.108.17) X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BY1PR0701MB1271: X-MS-Office365-Filtering-Correlation-Id: 06caf9dc-3ebc-4fbc-3cab-08d4ab415138 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131423075)(201703031133081); SRVR:BY1PR0701MB1271; X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1271; 3:/sBD2FhMU601+RKCgJwZmPE6aeLxORfWlKNgeqp2YCdBrdOLi5QVDJLjV5WCTzYZKpac3vpcCz8DTlLT7ROgdGg6Xn8ryNRGjOhOfuX+WkRdBs3j0AG9QtTpYGfRLBZzkbHH5cpsHhXVRF6cjgNGL+sgrps9pUDp9sWDFMBYiKyoEBGZjpLTso8n3GhNUY7LbMpwkTlq2hm6rsdhTogzEzjsZzc1xHE1VZynJzZ5Dd972Bmmdp9BI0EZr7E5XaPuaYN8gYhUX384bOhKOACm8Pq/mSmKcyJF+0hJowP6FAYRvavltVkitlDSGbQEho0gMpTgjZ9xHSaA0uClGyfZMw==; 25:O/1Tvcw+9+qKlGioWJgwsehqBLPE9md3avpe5VMvQv/DC33BoE9vJIRYQtzYzrfWsZN18Pf8yVR3wyUl/I71YQVO/9bzJD6gF/6d5QE7wZYfb2xBjVoD6wTV/gS1blAorQ7HgJLVWSbyvFKZJHx6I0Wt27k+ultaJoitpxXCjcJ/FZk/4ANdLMlaH/PlgJcxYm3pEampoAxFwPXADu2mSNVb8gZS4ae7zviDBnYD8ZbyzAuDx8NvDHnoKYCdDeR3AzJUFZM49/0kU/OR1NA6B/P2UjlmrH5uAPNQ6//e12tRBKkTWrJgPUgH1Z7Je7REl0yMWs8xQFRa4Pp9OoBgXHfueAfhRPE8t+sfwvuqCG3H9OHf20TQcL4JeAS078qIlgKlz6f9s0Vouko1HiOSGDLp8KhjvZ5B65SWHqBR32fCSR3m2kmknbl0aQJ/nykklFyPXCwUYedVhj2aYlHFspxvyJIPv4PJYATZANojwtY= X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1271; 31:i7BUfNawuQYvzo1+kJv+JGejMSAiM9nDu+R+kk+/emeK3hZJ6GqeBBQki8eczRcgMaCyFezavnZaHuTejjShoCGqzVJegc4uYBBXcoaacIZfidouVycRIVQet3APS7GjEjnqsMdX5xdwEZ5O1S9DdaUL9ymE/jfAVq31Mk9YQd6B1lG3tyoh+7iHV+BU+R6Ys2j9z2YO8tavNrAVrxddgwp8pNFhdE+7jJ6m8SQnKwY=; 20:7DmBZyIghVPQ0+Q/i7Lw1ST3cZC+BlpIAAUpOjZwixrXWNnqNnwc1yscIoTAOZHvqTkiJk/InSsh8pSM+pBQqJi6JhvK0Gzhu6RNbbuZUy6bqizT5oRz2DsNCjB03ph9SCoKB8i5aqYqjN8ZAxVCPiZHHRmdOIj06Q99FTMbnX6GfHjd0kiMyuuqm3W50a4InR6toL6QtGwAwEP9KohBx7W1O+kkkeTNtZ9D0peS9W2J9cYa+HlYryO/ZxHgaKjgOE4wjR0Zt4Ny67KPE2hf3BqUpZHID6tnIWTapsAvQq70lrQ2OHfEzfopUPDt8TretJiQg/6hG7uSzQ/VCbEp9IrnkXe0Im0uGRb3jaMvS6x79ckf/QF+MfzW+rrnAtVTsmG4Z52xW4azaIy22ktljVMaFqQJFLVuLRidEahvHNnI8lvIomuj9voZbQFUpT4zm/pWf8IXCb6SV3tSq8eL/qX2MviSw2J9Sn5ePJ/JVZ9fILONSCLl9YrkyB1DH0oqlp4au4/q4ZETMOE+Bn6nCAg6v2i8D97ViPecDNfhrfeq4j3w5RScImmXaiXkaAiMo4PRbq0bDPguhpAirThFnnvbqbUBs/NswQu4YQ7a+UI= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; 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)(20161123564025)(20161123560025)(20161123555025)(20161123562025)(20161123558100)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BY1PR0701MB1271; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BY1PR0701MB1271; X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1271; 4:uJe7T8M1+NJaX1FJUGUYhvzkf36eSW/HRZDyRyJwRRxl4/nBeNdmug6qIfdVE3eadXalg5M+JTri3ay4lT9lOfi2hPpaOE/I6wwmSzo6HsaHhNUetDp1HWOUWafj3ZzBwGXb+dKnwv384i4Qgb38fiTJIhPGLUHkW7iHlx3gpQvrEd20l29APeTPla3xGswSE0pIgPGibYjkvNtgLr4H1RI7O9m2IAJ0JgcmuYGo4/0Iagu9/+BRkjxEBGcNZImWwvSrB64TjMWJrJl1K+tSCXaHPpPLuAqUt8tIBe241J84LHx/z62qMHfQE+m9SH7eYkd3IjOL9hsQ4HXWiv5ZOiOjhfBj/aDwXHAGwc9mQtbIwb2wgzW1JvCVqBqJ30hcsZtemW1MeVfJsA8lhMBQr3X5N+jy02k/UFng2cR5JWo6SxkOtiImKtKLbIxIqyG/TAX921fM+bmmnf0DJbnyW7JbvIw8W3wph+h6Iar2Vbt0cS2FW2pNUPaL5+BRMMKwwV+k1+tkJWly7epuFr4sDvNtKuhrdReysESACYIUQxXwhOvpD06C3rksNAhBT6Xw+ggASOVKB258Aydv8t6k/rToZ74YtuGKCGgDyN3sUtfAY9Pr6V0ELvof7dmbhE31i4Y7DKduOHuOAbPe/clKI4PnD1fomWllpOHB818fTSpWiueQuQaZmok0ninCvZWMdPbr1KhBjmgb0WyIqWc2HG0KxzQty20HrKk5Gw/o3uImto0c3XKD2UxOhniFMjM6qa1qPHd6CeOsFMtUgm/0ZDDxhFEw0doGILmCGW2LEhozo9SCk/pdNi21Vhd+Pa7gv00iH0dFa40mbBiQ7O9crXZUuX1GEl+/GcgycUm31ZjeZS/XEYAzXM1sxCjcHxXu/qNwA8WMaBTOzM/g+9f/556zWYFV7H53ZWpXPEnXlKKJ/gp2npbueeA5YHXqQKqh8cwsbI4ui2OyKiZ8Guz4m5YL2+2iqyYJOBNL/o4kJHoJxNt1sT/dhfjbRODCtZtyCB6jCar2spRnTbjhZHSsDto6tDqJaw+QGISgMEC3bJsHssh1YW48UKJqIP8a2OG51pKAimcQfIEHR3Ub0ubg2aOfgIxMi3pE6jUx1lZdv5k= X-Forefront-PRVS: 03283976A6 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(6069001)(39410400002)(39400400002)(39850400002)(81166006)(8676002)(76176999)(50226002)(42882006)(2950100002)(48376002)(50466002)(6666003)(50986999)(33646002)(47776003)(5660300001)(189998001)(305945005)(53936002)(7416002)(36756003)(76506005)(66066001)(42186005)(54906002)(5003940100001)(25786009)(2906002)(1076002)(6116002)(3846002)(6496005)(72206003)(6486002)(38730400002)(478600001)(4326008); DIR:OUT; SFP:1101; SCL:1; SRVR:BY1PR0701MB1271; H:localhost; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1271; 23:xnpxI6nrOQ7MyD9CLEam8SHYqj1pevoJ5qQqVa1ojkla8d93JK7ftRnKHcNfbRKjUdrUDmI28xL/aRTBi5U/MaZo1QW/daR4I+9Jz4RqSLVNs4tXW9zOdRRhAxOLz4gbxMULbEzkLx2T6C1vnv+hgBL84R4M6u9TN2Q6JzKdWMiJFscnB+1bwH9AODa7F9My5L0lY32nl9iSyowzv+oCbHEMtFYHSKifDE+xMdvUQVpUKjoCupQT7ZpL2S3ip0vYkYceXxBl8ocjXqFOOcAtx7r0rfQrPz40RCvLLACSEj7SaRmt1Fdm9UA6pUnWfZ4fgYziB4omyBsQU0S0ZE+tGIIKOhrO0swWv/9Hxd5v0PBXbHe+AjcjfzFuxAADGSbUPDf/iCIhJPVE6zfEvYYaX/BD7kfulHTGSw5ap10SCue8650MbXn6uWuFyNeuc+aBDoRM4GSoM7cMf0bzpcD7ieNDMtkQKOqrzXvVVspOiohJrhmji0bc7jhwxQhwbSXJQZS5FpnVQBQ2mXACbhKA9/dsKyg8RM6od28mdOxqW/9LT737vqKCcFNvEz75m2O8+xLao+sDnEzp32cMiUJQLBxOqDe4JDeHzq67qRKlkRjeRCN8jui3GFUjtlVAQSTVGNgp0RTh0ZOqC/CDR6dipj1CR0ooSPs9JRmoftdzCgCzahTgLVRO3J3dYalNgFLsyVmyof9aWRwltUHNEhUH9GHASbnCmtwVb6d9ogdbhPhnt11iNYVt5aIwB/8zZXPfHESNpbAXHtSulmRH16oqbIjLXb3aWYEfjZyW49fxf+KgiIbTjo1vEICuDncdAU8yK2/VvKtjF2fmxxFm/xy3u+K+JfEj6ad/kKHpux9rIjaHkkEkqjvDK/XaTCTOWxEtYNqgjTtM0oWrkiSwG7k3rcp7AbDQnDRyLykoYgzVzP82p6YScfLzzygBzPzgdX8W8rcjxQVAGiTy1TDChtd41F6oCXou6Lxlzk9+0iF9psXn/sgQqELW9stmDEy1qgO+ X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1271; 6:fekpcjZwBS+oIpfNgZXQV30kRDuyio396UvS3fmKBviYzyDEY/jYuowEZbKtwyvsQvFM4GAAS8s8rfxmhxPnApJRCdB/UdqrOhqbRv1ZOzysdQAL/Qx7Sv8PeeTPNQJsZuTgbSYh5lqPAIdQbiqTbPVhAFVdKTVse9tsZbLTsVr2Ndkqff0qCWiYWozqRh14y5J7mNLjygorM5shwZykgf4RkPCy8ymRGs/EKF4EsIiObxfj5G3/w6e9q7GEWyMTK9R/NuFztWl6/XJJO6x9HZ1nUKCdwro38TQvw+wn19/YWov06HpmpgkrIc/Qv1pkuCT/Tmi5eS669ntGlpqgFhyAMBO+tzoh4Gu3oLC0pCGC33I0DO/c94ltMISe7PEOqWiAEnY1uyJKG3Ozgi3sGHFRDyuFM8HoNYpwwHmDIlaY+4cRm8EqX3NJ/T3oFdSEFmDkU6SxSqNt1Nf+jiH+e2q9YliNsJnTOfSnxfxs6eK2UVnEpOwfPZe2ok6WordT1MUlb8ziLuqzNsaFbxpqnw== X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1271; 5:6FX970uCHKOit7m8tP5tBIAoYOjSj8ByvbhAKJS3l4TPddYmaMIHb+0z1S3m4PpJ2b3NH/nOWiKpMytAnm3r2BPLsC5mPW7YrCeEUhl9r7Lls7lnW9ZVR5Xs+REuJvZrEeLsRW07gFkW8g2O1ADRMcPqWV0B52O0+7BOGTFqewvSq492tG76SZJJ0Gxrr/wZLS/+zPSudGyepS20VAkGwLj0bOoWXdagc76jv6stgDY0Qz43ndmGuXFv20Ffno1zax9xhZlAu+ol8OvT9176vb4IqwdJ+UHzrs8HHzNiRkdqUumXKV93CByX9dyZ4cLOF9hF07jYsqifSc1ozPQbDfLz2r0/vAF/CMLCObMxDLAFEs9GWMbeHAmhh7jrc9TtYhdc8bKOkqESk9T536P+f/3qj4Qo0Kkpyzz4ulSU0IkCfSKppnteuYXrvAIhlf8myg0lkSr2eJxYIISSLmCORlgSDXmMKdl4R8NMz2q+9O3A2fGU0X/SYkprbGKLEfE4; 24:+VwbZpxYcukmsy3ulgVVCZUoXlGqsoVpxzqFcZtrXIuSOgVzUImDC8JdeEh+MRyDlS5UKYGJdCHs3OKi0tiLcr6f1kBNZ4ry4FtzzHBvVY4= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1271; 7:Cxfqw0/oe1Hbk5NiMaERL5ud0KUTk4S+TjdnhcqkKOCRzYNGfLRP7+MhZUSMkjkwsH1WKu6Qrb/dbM5nAoSBAtVRs5/Pr/RWmjNMEXYCZzDPfGZRLCOlbkMrv4dB0eqT+ROj+R0viKJs7Iqd56MHko5DKk3uZMM5ch7QjWfQ3SfjEQKgELZ1CJlrwjNdWrlx8PT7whKv8jJewuHuIaONRWr58Bokd/lBUj6XAPGuc1CbpUZ7/tZkyGCcW2dJYFkzd7HU1dUJI+Zl99J9T08pXF325qgqYtJsV61kNGC2Bzk4nodOiOFz+M7NYolbemi+GEgWpJhQlJ7IMLRqYbxzlQ== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jun 2017 12:00:38.0727 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR0701MB1271 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The only difference is that non-compat version forces O_LARGEFILE, and it should be the default behaviour for all architectures, as we don't support 32-bit off_t. The only exception is tile32, that continues with compat version of syscalls. Signed-off-by: Yury Norov Acked-by: Arnd Bergmann Acked-by: Chris Metcalf [for tile] --- arch/tile/kernel/compat.c | 3 +++ include/uapi/asm-generic/unistd.h | 5 ++--- 2 files changed, 5 insertions(+), 3 deletions(-) -- 2.11.0 diff --git a/arch/tile/kernel/compat.c b/arch/tile/kernel/compat.c index bdaf71d31a4a..3b7853c59395 100644 --- a/arch/tile/kernel/compat.c +++ b/arch/tile/kernel/compat.c @@ -103,6 +103,9 @@ COMPAT_SYSCALL_DEFINE5(llseek, unsigned int, fd, unsigned int, offset_high, #define compat_sys_readahead sys32_readahead #define sys_llseek compat_sys_llseek +#define sys_openat compat_sys_openat +#define sys_open_by_handle_at compat_sys_open_by_handle_at + /* Call the assembly trampolines where necessary. */ #define compat_sys_rt_sigreturn _compat_sys_rt_sigreturn #define sys_clone _sys_clone diff --git a/include/uapi/asm-generic/unistd.h b/include/uapi/asm-generic/unistd.h index 061185a5eb51..429dd335def6 100644 --- a/include/uapi/asm-generic/unistd.h +++ b/include/uapi/asm-generic/unistd.h @@ -178,7 +178,7 @@ __SYSCALL(__NR_fchownat, sys_fchownat) #define __NR_fchown 55 __SYSCALL(__NR_fchown, sys_fchown) #define __NR_openat 56 -__SC_COMP(__NR_openat, sys_openat, compat_sys_openat) +__SYSCALL(__NR_openat, sys_openat) #define __NR_close 57 __SYSCALL(__NR_close, sys_close) #define __NR_vhangup 58 @@ -675,8 +675,7 @@ __SYSCALL(__NR_fanotify_mark, sys_fanotify_mark) #define __NR_name_to_handle_at 264 __SYSCALL(__NR_name_to_handle_at, sys_name_to_handle_at) #define __NR_open_by_handle_at 265 -__SC_COMP(__NR_open_by_handle_at, sys_open_by_handle_at, \ - compat_sys_open_by_handle_at) +__SYSCALL(__NR_open_by_handle_at, sys_open_by_handle_at) #define __NR_clock_adjtime 266 __SC_COMP(__NR_clock_adjtime, sys_clock_adjtime, compat_sys_clock_adjtime) #define __NR_syncfs 267 From patchwork Sun Jun 4 11:59:51 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yury Norov X-Patchwork-Id: 101353 Delivered-To: patch@linaro.org Received: by 10.140.91.77 with SMTP id y71csp494287qgd; Sun, 4 Jun 2017 05:01:25 -0700 (PDT) X-Received: by 10.98.16.215 with SMTP id 84mr15234912pfq.210.1496577684990; Sun, 04 Jun 2017 05:01:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1496577684; cv=none; d=google.com; s=arc-20160816; b=SdU6TfKLn5MoPXihR4ISQ12UJABOq9wkXdrgl+M+MilJYAgRuPSU+2oww4odxPDsnp a/TT492B8oLnmiMEC6qiED4TR/m/INFlwOsP5EnXbmEuE9nBvZJmVboNwcGOEA+4hu7P MiimHWZsunmyKDeXsBe4gLA2RAJZzbX7Zy0kL3lXsHeAORLmVfevidg+wD2FBIFXgsSp AYaQ7xkk72ORN6+WERlq04aRIx+LBA+ygUYwxTMEYzjdABfHYEAhwpTPrnDtNw7wnl5S 2X8qNkk9aBkvACrduC7K/fV1ox3gZjA/+aGxYj7WR/UOs0Q0l/A4oklM00B1trw0Uaog XHQQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:spamdiagnosticmetadata :spamdiagnosticoutput:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature:arc-authentication-results; bh=eL+vyg6pDt98FvxMOZRhQzFW3SKLf+yxuJ2TiCzyQX8=; b=bbbz8i2y2VmHzFOJEj4xYj8hKFG4L+B4x/Peh37qOsXQIRsOXbKZuU0UnGVOEWlBnI q9dnA9siwJa8LPoQXo8E5StRu/lkII9dAEDxUSpj1ERpnuydLrukqPmEe+1er+ZCVHhT dfIRIiJsKDwBaOqxm3xuvpK5NVhEdJXvQvXa6XoU2J9NnbrnwwJt9ixa1QNULXJT/qik q9aCHE1I5Vvm0+ovGnvf1d3QAhVjjRnfLKhBqxNRxeFfzMzPePw8WIIGgGTl+oRJN6Z0 xcIV1xPnWgZRQRkKeafyGkJ6xNPjycZrqx5SRAse4384f7fHUhW03EBTRZbo53qj2G1V z42Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@CAVIUMNETWORKS.onmicrosoft.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a7si28090180pfa.328.2017.06.04.05.01.24; Sun, 04 Jun 2017 05:01:24 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@CAVIUMNETWORKS.onmicrosoft.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751256AbdFDMBI (ORCPT + 25 others); Sun, 4 Jun 2017 08:01:08 -0400 Received: from mail-sn1nam02on0042.outbound.protection.outlook.com ([104.47.36.42]:28372 "EHLO NAM02-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751236AbdFDMAw (ORCPT ); Sun, 4 Jun 2017 08:00:52 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=eL+vyg6pDt98FvxMOZRhQzFW3SKLf+yxuJ2TiCzyQX8=; b=KKCWk7azoo8Np/3unMmZhxT5Hu9lcgi341cKj64Xb5xpxhzNiMGcfdOTfwePY/38klWCXKmHpLOy86Jkrehg1Oef/8qSghZYRqmIGE5TiI1zKf7q+RIXDL+nJ39bvw0hcMYT5JyTZlkPNCzU25hg86UqRHBxTv/eJ/e+fUFJmCg= Authentication-Results: arm.com; dkim=none (message not signed) header.d=none; arm.com; dmarc=none action=none header.from=caviumnetworks.com; Received: from localhost (176.59.55.28) by BN3PR0701MB1267.namprd07.prod.outlook.com (10.160.118.141) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1143.10; Sun, 4 Jun 2017 12:00:49 +0000 From: Yury Norov To: Catalin Marinas , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, Arnd Bergmann Cc: Yury Norov , Andrew Pinski , Andrew Pinski , Adam Borowski , Chris Metcalf , Steve Ellcey , Maxim Kuvyrkov , Ramana Radhakrishnan , Florian Weimer , Bamvor Zhangjian , Andreas Schwab , Chris Metcalf , Heiko Carstens , schwidefsky@de.ibm.com, broonie@kernel.org, Joseph Myers , christoph.muellner@theobroma-systems.com, szabolcs.nagy@arm.com, klimov.linux@gmail.com, Nathan_Lynch@mentor.com, agraf@suse.de, Prasun.Kapoor@caviumnetworks.com, geert@linux-m68k.org, philipp.tomsich@theobroma-systems.com, manuel.montezelo@gmail.com, linyongting@huawei.com, davem@davemloft.net, zhouchengming1@huawei.com Subject: [PATCH 02/20] 32-bit ABI: introduce ARCH_32BIT_OFF_T config option Date: Sun, 4 Jun 2017 14:59:51 +0300 Message-Id: <20170604120009.342-3-ynorov@caviumnetworks.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170604120009.342-1-ynorov@caviumnetworks.com> References: <20170604120009.342-1-ynorov@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [176.59.55.28] X-ClientProxiedBy: HE1PR09CA0069.eurprd09.prod.outlook.com (10.174.50.141) To BN3PR0701MB1267.namprd07.prod.outlook.com (10.160.118.141) X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN3PR0701MB1267: X-MS-Office365-Filtering-Correlation-Id: fec9b72e-3fc6-4a42-a8a9-08d4ab4157aa X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131423075)(201703031133081); SRVR:BN3PR0701MB1267; X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1267; 3:EQ/SVZe88P4q8YCcI2vRgirJvpvvZX5FkdheqJpmSaGAaJu/J7E6kvjZ2m1vg8TSTQvsUDNXVpYUpjDHSZKCM1fdjN+P0xPkgDNJXjBVTbraPLLfEhNwkOnYY8BDdvGFCmxntq5hlswsm28W8q+xs0+5vSB723wiFSQAeZPQdv7DytGCbTEEC7YxF4QFYe/FjV90kmEIfq3aE+H/r2z+GoYg1MfGlLTHte8sSXqz6ec8Oq3NX79RX+UwMxVt4/sO5PNwdgmncw9X3gkuDkZZDecUw6L8mFImmltiCqanlLPtUsQrh3YP4dnZhTm54xrIrLwaoEz6aK8o0S7V7501LQ==; 25:Zr9dlSAvh1N8rkKDAEwRAgt1kiAtzgJZAhZ/KKhxd6npIGL0bqhR3DcDWPXohlb+lNq+uE315PYtY83mwtGbndGxSLjJpsjgEUJadOkeneCU6yuSkP5ANuB9fG90KWkpgcNQxwdxIM9ODJG5kBStsJN7DEPGHWm/lNI7zEKcn27l8tSpw+XOqwOTfyiqQqVIfPJGTcHrgo42FKeaoy2qghqQxFecem2nWJ7C8kW8Clw9AdTvtQHYQp/Tk3YB2VZwZ0+bElUUMeFNLjZbLSOkz35ScPJg0ns51E6RPegXde/V93M8Ebg7vgDRoGxwj654f2frHxbWmNdk03DPQmJV/V0eIx5y9cNO1NgHDmP0o4pw5qJw1PIur9Vx0RP4OTI08KlRvh+h+CwLa/VLhCPs1V33+8/IBGZ+bQ7F70hsjXdf4Mxf+FhQW2R+NtrpNBLG0WJGisez7L3wHPV6hUPM1HQ+z2vVATGv1cL1XBgftHM= X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1267; 31:th3RMm2W5FWu06bjA8Bb7inEdEdbsORiULksKGRgdtrwlOpXI3VVrhKDGEFpfpDW3xvHWYaPULFpzWh8971V55GYCMMxahYo/yS6fYCdGw8mn47PI2w5/AqCD0RGvw3PWQhwCawbRQuf1UpFV4DbNrTslokR9/jCWAUGe8RvNhylMEk//zRwpZuIfGUr67SluQOLqD+wMY9c3vOAzH6ZmW16DArkDpRe/alj4JWhMm8=; 20:fdaCsigQ3R4KMfdeZl44kTsDmz1PhHigl05ylq1VgfIapVwpQXyppJA4kQjZRJt3kXlCYBHWN+3LCBOOeK8Y+EHp/gALjes6V5UPkUCyVCZTFmbB9b0H2sSj9itCCuLCgsugU7Mcfppov6dlz99HP6uapnd9tL+T5gguGF//QOGTAxSecVWwd4Qo+FBTKq5+7NkBxM6sEk1Zn5HMrXQEkejbDbLdKdzmZSPQTDApERkA49Hqm69q3WhjV+HIu9YyCSBquhsmvdT/PMTTQ3Y1R8RELyWhVChfWx4o8D1Z+m2v0QfTqtQAfJAkyTkRyf57ZSU2Z2kDGbnRQJWzxwmgiKyabqYdg7Gwf1imBLo+KgtlObBGXVk8b7gPrcRlu+gGg/oDSN4co0wiBHR8U2dOMhzKoi+7TGJuo8g1ors51uQWB3XDtinbv8/0DjVcxkssyRF1mabd2RqgsYF0J/+Y9Qwcz3Vy+LAPlWRvo2mc4rvXk3yL8CC7oojoblzSmh4xSuOGN9hiZaiDhJIxeK2KKqc4TwaVQW8SaEgGrMPfQjtwb2xbTryp5TbXdrlZ2c88R2rySjsXIu95aHJniNxHGlungO3hdUhu8WuQixHEwio= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(5213294742642); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(100000703101)(100105400095)(93006095)(10201501046)(3002001)(6041248)(20161123558100)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(20161123562025)(20161123564025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BN3PR0701MB1267; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BN3PR0701MB1267; X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1267; 4:BRLUHV/+sNeyqn3NYF7d6qBBHlyVo2lLzIMdo05sQn4IuTMeRT/KXHuU5853B9MESAWyQNIhOD5jnqU2/C3PZDzhdo7/GPOnC0BqN/D9TCQnWDyCTZBpU9V3QlnUmcn3ULEqC7ho56+Gt6TbhFZrpPO1cr/iDuBffYPEey+lT9jCvGiPMICo9XfqposOqw1o37D4YH3DwM8C50IQTFVtPA4UmJHYKOVGouzA93T2fK0ersGC34EvLbf1cvpQJtQkKkm0/oVAsabG5JmiHS6EKQxAQyS72XyL78gF4f6gc7EL33UbLVHYDq9XnzGo0oyCPMMMGy6J4l3gmDSZv1wDgoCnMw7I5b8dRegFeOkFRSZFOUrLaTgWldu2p/DZsFzhKVsjVF6z+FN3RKlrJvobEyL/gLC2ANc0CaK0e1U1JIYhSDQr2nLoH9/lHB49BfuS4BP/au8WHuPcxMP9lG2OnV2keZe2tT8DIEdoLyZuOYjk29VPcYZkRpvTp5BS6n0vfDAzwk9TSz7CU7+FTLTli7n32gB5IzV39tM0sV1m/oWIttl8NaUWPG8DBYC3FOuqjvAlNH0OuWJrTQ10ZEjwj4NBB2CR6sUIzd0r/lzwISVFgezLr4GY9O38MeOLh+mnkAwClS34OHv11O2DPgj6tMvPxAbNRb32PBChbJo6rdTTlrOz8gY1ytXyxz+F0l8nwIcEzCAhwU6caNHVncvsN1iMgr6NEt6iyiDUPRlWgYALtpH9Xl6sZMwkUIGjTKczMGEBNZOFrJoggTyQOWIPtoIW+dfs5gqdqk2W7L6cr6vUTNwBh1psDSSbkEWScoKrR+w1XmVmrrn+vOjwEBHP+mOMlgNXANJMmDN+bTpO9krwcA2/FbT3pLIbCEJBosKLiPoukI60KhZxS0y4g9jYQQROdVnAqaXd43ZlBgQ3qkdbT+MXlPoTWM01zahrw1P+K3cZS7m1MMfwMI5fD4pcXzYwhH9cmPkPW/4TyZdSulBDcgH/dAlbXa6EjVOerMpFFx3os1UqRGgM9hBPuZyWi3kVoGb5E1FMEepN49b5PKyUiSimBc+ItepU9Pj73MtVGHrJ2pJTPd0x2jybndz0gRrIshim0bRWiWMLsBOeLjQ0izS3EkO/qhJ6FY4gXEwyU7K2fecVkx/8fPBWx+GPkw== X-Forefront-PRVS: 03283976A6 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6069001)(6009001)(39400400002)(39850400002)(39410400002)(575784001)(2906002)(72206003)(6666003)(189998001)(2950100002)(42882006)(5003940100001)(478600001)(66066001)(6486002)(53936002)(54906002)(50986999)(76176999)(47776003)(38730400002)(6496005)(48376002)(50466002)(5660300001)(7416002)(76506005)(8676002)(81166006)(36756003)(305945005)(42186005)(33646002)(4326008)(50226002)(25786009)(1076002)(6116002)(3846002)(15760500002); DIR:OUT; SFP:1101; SCL:1; SRVR:BN3PR0701MB1267; H:localhost; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1267; 23:tvhpB5uC8bIPvJ+t59qZRWzD9uJXR4GEdIGp4IjcMn95AYbEFNBImX4gH4qEWr/w6U2Rw7WcGLNNM2BZ/7h+1Aik7fTStdFuSpH/nUKXH/UEyuEPzNq5dur0jqK2Ke4PsBa3B/vlac85J54Ye01CGymV69pHJGaGN7tmLVgb95SW2ytSRYVr9/Qh8Iv58cKBiZwNRQTzGDuqenWG8ho0gw0E2wLHcevgpz5eOTZcvIGpFdA6i4iVoKcDGfdsHJoaR8U0CqwYodeTKfZviNftjCYX6LEKhuo3lIgcOze0VQDGdFYIzuRoCb6dKe2A3iW5s8RrH2YjlD7hrKeIP4nBxcc7YpeerPMfbJObKgW9gm3tJ/SiFy0sFsPQOeU5bjXDiLUjQGoq1FDJFCQHOAPE0frEi7sZOhxaVV2RHqeUWCo2Da0tsDfLhyYlUho4graHnppeRV9mcZAJK3TLrVI+BxPnx17PB44D17ZfPShwmddmMuNRHNRr1jpdo+Kg9l1sNN3Uzf5T5IdR1RnTBcYkR3/b9ajDJAKVhC9kjRiB36mdi31GsJqNR9EFksk14wzRZiHV60UzYL6eqH8pRKWXO9ZVUuW4ZdjJuY7Vaea+0HOxMdX1qIWnH2YeqQcj/adrDxGkTW9/EAzvXoJa19njSP5Zelr2jw4hJPRFXMIfd09n7FmIxmSJcGICpgIGZGMyhr4fsL4KDS3ZSQ9AGslWUIT0pkANeKwWB62TyCkUGGOFwBeF4T0YzMHv/r9xQN2PAdVo16e7uNdHORtGvZkcYkhkGjMSbbcxXglVWWEcsSRpt3CXyvADYS6vg3vcIO8YrSR37E2FQC2ObYuABgaP5ryOfu4qANenKY34vYgR+U60YMYjsTZXYC0aH7rJGf9Q+G2rXu2y1EBkoTh4CpLyeFQNBIheTq1jQgYh0pDtIhHXvUj2yeULCoqro/n4Q24sS3s2cVONUCnGt7f+fgg4mOU/yUTsuBnHTo0+t+9dyKBfyTLwvelydcP3E+r8M35udPKptv3NsWc695f/vqfDUdvJA9vGZA1dBSWLV2xTALdCnDm4RifipBtJzQ2kcOyK X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1267; 6:CI/Pstq3zYxXmlo7kvZ3GZPU+NtzC+m1E1yuBLNNYPPH/gbejC1TThVBkalbObZN4qrMCNmTnsxV3N1BqyLTTiKtkaBDA9obz2VJPHA/GJT1iO3aPBs0gSzUpajvXIuewQDd8Zwvl21VWw4NoCUmV8nBoSChL9joewa0EvxTaFKSJ5zgL+/u8+Hav/SPIWpD49HETLwWg6lcZzDwuSOGDP9SyBFRfuUHk4fz7u67mva5wGeF722nDZFaKugM8OK212DyLOZsEqwZ0RwQLvug+sbI+wpyhm3ytbe8tpOZVrpS+rW8U4UvvHFMhdz/aGpjDXl0yj4lh1sGSicAyoflbdUjaiwN55GMCzIxyUAne05RhWE0MrnNNhvpS2z2FqNHfKG/3TmfS/AqkUpfKSG5h1l+tXsHp1fksxQFjn/MFR6VYmSml2Isze53gHvrYOHSBok2mf9RjjNZ2/DZiBbzuRqYxOWVCZbepTPe65qURwv0frxVaTQN647jlWv0m1lajTV+PZkFyVKiHJClQj5weg== X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1267; 5:T7b1mI0WBOW2M3r5rKxCVzmtg8gYwR2PUaPp5erBIqaMlHlFUJDg4WXHa3QG61qab84rc6B98KnAcOQjLFLZzQsrJ480jlU0mt+nX7P63r0oayJGX2QUtylznwjrcpdsgPfYQBKrEYWwbpTLbLgV2XAbQvBTVYfj20UyNIRgdq5YCuSOVbY2vOfo71P+nwF/8eaN33PGarFCMC0inMisuTJR0cTdeSKQsbr5jKdUdWLvHDZRFzWQOEixOmfdA/o6WiO2Boou/cSvvrvwcEElg7pXP+GKYDGwa8rAx+XOJlEnrwQV1QA6ydvVqur3m7S1zPGQxRFqxNgUD+xVqnTI+Zj19v0EauP4gcPdjzqmG6L2v/xmKsopCFtpYObRpcfqXCpg9mU/xKuts3fIqBu5k9hUPEgLzbP3K0cj69HtibUjd2TVXbMXJpc7iGWkuImB+8lU+pRtAyXPu+3k6bF1ZaKQ/ty/6WY4KylTXKA8JG4W1Vpo0MrJiZl76wGq7aUk; 24:UP1IZfCD0Nm0KUr1k9W2a/t8UXfOg889V7YnT3eWKdeskU4XweuKrT3CvkDg0NolA86VWyCBR179JSbSrCwgbAl9WPUpMPif8q62PEd1XbA= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1267; 7:8NyOIuk16q22aMLTSOLBmM1f/YXwXSnGg43oyq3NHDdqrzf0GDG+O4SfpK6lyyb/rhJPeMGStuxzTLfVTufgngDe85nNAXheo7daFxivhAZvAUpBbCj1Nw7TOabAw8vkLccJxWn+V+qHVpxJLOQk2bUe9sakzFy06PSSbeEgFmm/QFwz2ENSNcPSHxbq5gteA/syZyqFsttF8Wxsjc4/9AoFIGf++gqU9V3L3kFgDxuah3bld8xxMqPzJB6UFLRYhxmCN2qd1FPzePKKJVNHM5hzGMBLNkXkMqmEvvdYXDD7PGLHox4+emDJgvyJSehgmjQwUAZRdDUENMtTNxw9Nw== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jun 2017 12:00:49.3404 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR0701MB1267 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org All new 32-bit architectures should have 64-bit off_t type, but existing architectures has 32-bit ones. To handle it, new config option is added to arch/Kconfig that defaults ARCH_32BIT_OFF_T to be disabled for non-64 bit architectures. All existing 32-bit architectures enable it explicitly here. New option affects force_o_largefile() behaviour. Namely, if off_t is 64-bits long, we have no reason to reject user to open big files. Note that even if architectures has only 64-bit off_t in the kernel (arc, c6x, h8300, hexagon, metag, nios2, openrisc, tile32 and unicore32), a libc may use 32-bit off_t, and therefore want to limit the file size to 4GB unless specified differently in the open flags. Signed-off-by: Yury Norov Acked-by: Arnd Bergmann --- arch/Kconfig | 4 ++++ arch/arc/Kconfig | 1 + arch/arm/Kconfig | 1 + arch/blackfin/Kconfig | 1 + arch/cris/Kconfig | 1 + arch/frv/Kconfig | 1 + arch/h8300/Kconfig | 1 + arch/hexagon/Kconfig | 1 + arch/m32r/Kconfig | 1 + arch/m68k/Kconfig | 1 + arch/metag/Kconfig | 1 + arch/microblaze/Kconfig | 1 + arch/mips/Kconfig | 1 + arch/mn10300/Kconfig | 1 + arch/nios2/Kconfig | 1 + arch/openrisc/Kconfig | 1 + arch/parisc/Kconfig | 1 + arch/powerpc/Kconfig | 1 + arch/score/Kconfig | 1 + arch/sh/Kconfig | 1 + arch/sparc/Kconfig | 1 + arch/tile/Kconfig | 1 + arch/unicore32/Kconfig | 1 + arch/x86/Kconfig | 1 + arch/x86/um/Kconfig | 1 + arch/xtensa/Kconfig | 1 + include/linux/fcntl.h | 2 +- 27 files changed, 30 insertions(+), 1 deletion(-) -- 2.11.0 diff --git a/arch/Kconfig b/arch/Kconfig index 3eac97a4c7b3..7adcd88529ef 100644 --- a/arch/Kconfig +++ b/arch/Kconfig @@ -246,6 +246,10 @@ config ARCH_THREAD_STACK_ALLOCATOR config ARCH_WANTS_DYNAMIC_TASK_STRUCT bool +config ARCH_32BIT_OFF_T + bool + depends on !64BIT + config HAVE_REGS_AND_STACK_ACCESS_API bool help diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig index a5459698f0ee..cab9c53e0354 100644 --- a/arch/arc/Kconfig +++ b/arch/arc/Kconfig @@ -11,6 +11,7 @@ config ARC select ARC_TIMERS select ARCH_HAS_SG_CHAIN select ARCH_SUPPORTS_ATOMIC_RMW if ARC_HAS_LLSC + select ARCH_32BIT_OFF_T select BUILDTIME_EXTABLE_SORT select CLONE_BACKWARDS select COMMON_CLK diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 4c1a35f15838..39e685e591ad 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -1,6 +1,7 @@ config ARM bool default y + select ARCH_32BIT_OFF_T select ARCH_CLOCKSOURCE_DATA select ARCH_HAS_DEBUG_VIRTUAL select ARCH_HAS_DEVMEM_IS_ALLOWED diff --git a/arch/blackfin/Kconfig b/arch/blackfin/Kconfig index 3c1bd640042a..26418e78f06b 100644 --- a/arch/blackfin/Kconfig +++ b/arch/blackfin/Kconfig @@ -12,6 +12,7 @@ config RWSEM_XCHGADD_ALGORITHM config BLACKFIN def_bool y + select ARCH_32BIT_OFF_T select HAVE_ARCH_KGDB select HAVE_ARCH_TRACEHOOK select HAVE_DYNAMIC_FTRACE diff --git a/arch/cris/Kconfig b/arch/cris/Kconfig index 71b758dc3a96..8c059f07ddb6 100644 --- a/arch/cris/Kconfig +++ b/arch/cris/Kconfig @@ -50,6 +50,7 @@ config LOCKDEP_SUPPORT config CRIS bool default y + select ARCH_32BIT_OFF_T select HAVE_IDE select GENERIC_ATOMIC64 select HAVE_UID16 diff --git a/arch/frv/Kconfig b/arch/frv/Kconfig index eefd9a4ed156..2f1490448fd4 100644 --- a/arch/frv/Kconfig +++ b/arch/frv/Kconfig @@ -1,6 +1,7 @@ config FRV bool default y + select ARCH_32BIT_OFF_T select HAVE_IDE select HAVE_ARCH_TRACEHOOK select HAVE_PERF_EVENTS diff --git a/arch/h8300/Kconfig b/arch/h8300/Kconfig index 3ae852507e57..29bbcb1c8676 100644 --- a/arch/h8300/Kconfig +++ b/arch/h8300/Kconfig @@ -1,5 +1,6 @@ config H8300 def_bool y + select ARCH_32BIT_OFF_T select GENERIC_ATOMIC64 select HAVE_UID16 select VIRT_TO_BUS diff --git a/arch/hexagon/Kconfig b/arch/hexagon/Kconfig index 1941e4baaee6..bbcea8c33e44 100644 --- a/arch/hexagon/Kconfig +++ b/arch/hexagon/Kconfig @@ -3,6 +3,7 @@ comment "Linux Kernel Configuration for Hexagon" config HEXAGON def_bool y + select ARCH_32BIT_OFF_T select HAVE_OPROFILE # Other pending projects/to-do items. # select HAVE_REGS_AND_STACK_ACCESS_API diff --git a/arch/m32r/Kconfig b/arch/m32r/Kconfig index 95474460b367..d6d19f6ba39d 100644 --- a/arch/m32r/Kconfig +++ b/arch/m32r/Kconfig @@ -1,6 +1,7 @@ config M32R bool default y + select ARCH_32BIT_OFF_T select HAVE_IDE select HAVE_OPROFILE select INIT_ALL_POSSIBLE diff --git a/arch/m68k/Kconfig b/arch/m68k/Kconfig index d140206d5d29..ed6f90ca2d31 100644 --- a/arch/m68k/Kconfig +++ b/arch/m68k/Kconfig @@ -1,6 +1,7 @@ config M68K bool default y + select ARCH_32BIT_OFF_T select ARCH_MIGHT_HAVE_PC_PARPORT if ISA select HAVE_IDE select HAVE_AOUT if MMU diff --git a/arch/metag/Kconfig b/arch/metag/Kconfig index 5b7a45d99cfb..c337192e3c3b 100644 --- a/arch/metag/Kconfig +++ b/arch/metag/Kconfig @@ -1,5 +1,6 @@ config METAG def_bool y + select ARCH_32BIT_OFF_T select EMBEDDED select GENERIC_ATOMIC64 select GENERIC_CLOCKEVENTS diff --git a/arch/microblaze/Kconfig b/arch/microblaze/Kconfig index 85885a501dce..643025c9f752 100644 --- a/arch/microblaze/Kconfig +++ b/arch/microblaze/Kconfig @@ -1,5 +1,6 @@ config MICROBLAZE def_bool y + select ARCH_32BIT_OFF_T select ARCH_HAS_GCOV_PROFILE_ALL select ARCH_MIGHT_HAVE_PC_PARPORT select ARCH_WANT_IPC_PARSE_VERSION diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig index 6abcef37ce06..4a50d1e6f3ee 100644 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig @@ -1,6 +1,7 @@ config MIPS bool default y + select ARCH_32BIT_OFF_T if !64BIT select ARCH_BINFMT_ELF_STATE select ARCH_CLOCKSOURCE_DATA select ARCH_DISCARD_MEMBLOCK diff --git a/arch/mn10300/Kconfig b/arch/mn10300/Kconfig index 38e3494bfb63..75f226e6e819 100644 --- a/arch/mn10300/Kconfig +++ b/arch/mn10300/Kconfig @@ -1,5 +1,6 @@ config MN10300 def_bool y + select ARCH_32BIT_OFF_T select HAVE_EXIT_THREAD select HAVE_OPROFILE select HAVE_UID16 diff --git a/arch/nios2/Kconfig b/arch/nios2/Kconfig index a72d5f0de692..c6f19d7fbfd1 100644 --- a/arch/nios2/Kconfig +++ b/arch/nios2/Kconfig @@ -1,5 +1,6 @@ config NIOS2 def_bool y + select ARCH_32BIT_OFF_T select CLKSRC_OF select GENERIC_ATOMIC64 select GENERIC_CLOCKEVENTS diff --git a/arch/openrisc/Kconfig b/arch/openrisc/Kconfig index 1e95920b0737..5539d0842724 100644 --- a/arch/openrisc/Kconfig +++ b/arch/openrisc/Kconfig @@ -5,6 +5,7 @@ config OPENRISC def_bool y + select ARCH_32BIT_OFF_T select OF select OF_EARLY_FLATTREE select IRQ_DOMAIN diff --git a/arch/parisc/Kconfig b/arch/parisc/Kconfig index 531da9eb8f43..a9f430b86103 100644 --- a/arch/parisc/Kconfig +++ b/arch/parisc/Kconfig @@ -1,5 +1,6 @@ config PARISC def_bool y + select ARCH_32BIT_OFF_T if !64BIT select ARCH_MIGHT_HAVE_PC_PARPORT select HAVE_IDE select HAVE_OPROFILE diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index a81460b5d6d6..4480d9c0bdb1 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig @@ -130,6 +130,7 @@ config PPC # # Please keep this list sorted alphabetically. # + select ARCH_32BIT_OFF_T if PPC32 select ARCH_HAS_DEVMEM_IS_ALLOWED select ARCH_HAS_DMA_SET_COHERENT_MASK select ARCH_HAS_ELF_RANDOMIZE diff --git a/arch/score/Kconfig b/arch/score/Kconfig index 507d63181389..0a9484bbddf5 100644 --- a/arch/score/Kconfig +++ b/arch/score/Kconfig @@ -2,6 +2,7 @@ menu "Machine selection" config SCORE def_bool y + select ARCH_32BIT_OFF_T select GENERIC_IRQ_SHOW select GENERIC_IOMAP select GENERIC_ATOMIC64 diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig index ee086958b2b2..1f99eb3212d2 100644 --- a/arch/sh/Kconfig +++ b/arch/sh/Kconfig @@ -56,6 +56,7 @@ config SUPERH config SUPERH32 def_bool ARCH = "sh" + select ARCH_32BIT_OFF_T select HAVE_KPROBES select HAVE_KRETPROBES select HAVE_IOREMAP_PROT if MMU && !X2TLB diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig index 1a83ec901446..617b7aabddeb 100644 --- a/arch/sparc/Kconfig +++ b/arch/sparc/Kconfig @@ -48,6 +48,7 @@ config SPARC config SPARC32 def_bool !64BIT + select ARCH_32BIT_OFF_T select GENERIC_ATOMIC64 select CLZ_TAB select HAVE_UID16 diff --git a/arch/tile/Kconfig b/arch/tile/Kconfig index 4583c0320059..845dcbd8235e 100644 --- a/arch/tile/Kconfig +++ b/arch/tile/Kconfig @@ -3,6 +3,7 @@ config TILE def_bool y + select ARCH_32BIT_OFF_T if !64BIT select ARCH_HAS_DEVMEM_IS_ALLOWED select ARCH_HAVE_NMI_SAFE_CMPXCHG select ARCH_WANT_FRAME_POINTERS diff --git a/arch/unicore32/Kconfig b/arch/unicore32/Kconfig index 0a3bfd1fefcd..9629fd827d6b 100644 --- a/arch/unicore32/Kconfig +++ b/arch/unicore32/Kconfig @@ -1,5 +1,6 @@ config UNICORE32 def_bool y + select ARCH_32BIT_OFF_T select ARCH_HAS_DEVMEM_IS_ALLOWED select ARCH_MIGHT_HAVE_PC_PARPORT select ARCH_MIGHT_HAVE_PC_SERIO diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index f00fa5176f72..bd343f8a45ad 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -43,6 +43,7 @@ config X86 select ACPI_LEGACY_TABLES_LOOKUP if ACPI select ACPI_SYSTEM_POWER_STATES_SUPPORT if ACPI select ANON_INODES + select ARCH_32BIT_OFF_T if X86_32 select ARCH_CLOCKSOURCE_DATA select ARCH_DISCARD_MEMBLOCK select ARCH_HAS_ACPI_TABLE_UPGRADE if ACPI diff --git a/arch/x86/um/Kconfig b/arch/x86/um/Kconfig index ed56a1c4ae73..8436bcd9beba 100644 --- a/arch/x86/um/Kconfig +++ b/arch/x86/um/Kconfig @@ -21,6 +21,7 @@ config 64BIT config X86_32 def_bool !64BIT select HAVE_AOUT + select ARCH_32BIT_OFF_T select ARCH_WANT_IPC_PARSE_VERSION select MODULES_USE_ELF_REL select CLONE_BACKWARDS diff --git a/arch/xtensa/Kconfig b/arch/xtensa/Kconfig index f4126cf997a4..683f24e0b6a7 100644 --- a/arch/xtensa/Kconfig +++ b/arch/xtensa/Kconfig @@ -3,6 +3,7 @@ config ZONE_DMA config XTENSA def_bool y + select ARCH_32BIT_OFF_T select ARCH_WANT_FRAME_POINTERS select ARCH_WANT_IPC_PARSE_VERSION select BUILDTIME_EXTABLE_SORT diff --git a/include/linux/fcntl.h b/include/linux/fcntl.h index 1b48d9c9a561..297993c92490 100644 --- a/include/linux/fcntl.h +++ b/include/linux/fcntl.h @@ -11,7 +11,7 @@ O_NOATIME | O_CLOEXEC | O_PATH | __O_TMPFILE) #ifndef force_o_largefile -#define force_o_largefile() (BITS_PER_LONG != 32) +#define force_o_largefile() (!IS_ENABLED(CONFIG_ARCH_32BIT_OFF_T)) #endif #if BITS_PER_LONG == 32 From patchwork Sun Jun 4 11:59:52 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yury Norov X-Patchwork-Id: 101354 Delivered-To: patch@linaro.org Received: by 10.140.91.77 with SMTP id y71csp494503qgd; Sun, 4 Jun 2017 05:01:54 -0700 (PDT) X-Received: by 10.84.177.164 with SMTP id x33mr148233plb.43.1496577714268; Sun, 04 Jun 2017 05:01:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1496577714; cv=none; d=google.com; s=arc-20160816; b=tJCYgfTfzbBLNoQYxD1wBDQJpLpxTHmasozcq29/0z6xLhcJdVIxfF74DluY5uVrOn qa9AWm6/6reaQWSkQ33cA2pmQDmp/ts5BDCsH6pl87LDSJKLaMabMGo7k5dUwhoTNEHP vvt1irA732+bloTtXXO6YyLiYHegLhoev8i8WQgqe/orMqKj66oy4LKvqIkHWUYzpctM SILvomdMC6QkwKFcxK2U7iz5L0sN8P3ihwvUz0zic/h6qWTr3rYeVuSRiCZu36GDN7G0 7wRY4NV04wLUAZYLgBxylsgjwj9jssshg6USSee2Y8/gOYeLQ6deg7QKt/aSVgnCWF+U KIRQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:spamdiagnosticmetadata :spamdiagnosticoutput:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature:arc-authentication-results; bh=3wQxTq1a1FL7MaacYBCAG2hPeEXJ+xEWRu2YzkPLVws=; b=SB9cdTEzQ/QafG5bwjcVb10ctJsDcnOm3kkQNd0hdLVFPZgAZFzwh4FU+YK291icSi a3xI0wwCAxAOpPrPH7lp3fl11tuNsjRd12PNvwFVknS8OAG/8+oc98m9ofgjiYyodB1o EOeic58FEYtoYOv5aD6cD3w5L6OhETcgs2F0ArsJikald2bdOcsPcEpm1oszcUvjt0Jg 9uEe6sF0i+nPCy+IvEMeiBBQYJ47fd+nkdI5+F1Fyh70/YFziT8Xhe/ovx9TkpGoRz0q oJYO2+hpFksyJNAfdBi+b8mj1ppBHFlS9b3zDuouW4d0MpCFEiYs919B17eZAbQ/zEqb R8gQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@CAVIUMNETWORKS.onmicrosoft.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id q6si4555573plk.63.2017.06.04.05.01.53; Sun, 04 Jun 2017 05:01:54 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@CAVIUMNETWORKS.onmicrosoft.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751283AbdFDMB2 (ORCPT + 25 others); Sun, 4 Jun 2017 08:01:28 -0400 Received: from mail-co1nam03on0088.outbound.protection.outlook.com ([104.47.40.88]:52522 "EHLO NAM03-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751198AbdFDMBW (ORCPT ); Sun, 4 Jun 2017 08:01:22 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=3wQxTq1a1FL7MaacYBCAG2hPeEXJ+xEWRu2YzkPLVws=; b=BtqAW7BxAUZNT1WQlYGZei45lAwxYoVYfJ4pdbJ3iKRcpQDJxJ7FTFCMcTMZGlaRrcEWBsZAtJCWNTq3Wi6A9JyHY8yAD56XOI+AMaBc7yRHYyclPFAJ4FRzh8MgYUzfqWmm1qkUowIjo8tbiuYbUjgIvhQRMJiNQZ6tKY3N/7Y= Authentication-Results: arm.com; dkim=none (message not signed) header.d=none; arm.com; dmarc=none action=none header.from=caviumnetworks.com; Received: from localhost (176.59.55.28) by BN3PR0701MB1266.namprd07.prod.outlook.com (10.160.118.140) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1143.10; Sun, 4 Jun 2017 12:01:04 +0000 From: Yury Norov To: Catalin Marinas , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, Arnd Bergmann Cc: Yury Norov , Andrew Pinski , Andrew Pinski , Adam Borowski , Chris Metcalf , Steve Ellcey , Maxim Kuvyrkov , Ramana Radhakrishnan , Florian Weimer , Bamvor Zhangjian , Andreas Schwab , Chris Metcalf , Heiko Carstens , schwidefsky@de.ibm.com, broonie@kernel.org, Joseph Myers , christoph.muellner@theobroma-systems.com, szabolcs.nagy@arm.com, klimov.linux@gmail.com, Nathan_Lynch@mentor.com, agraf@suse.de, Prasun.Kapoor@caviumnetworks.com, geert@linux-m68k.org, philipp.tomsich@theobroma-systems.com, manuel.montezelo@gmail.com, linyongting@huawei.com, davem@davemloft.net, zhouchengming1@huawei.com, James Hogan , linux-arch@vger.kernel.org, linux-snps-arc@lists.infradead.org, Will Deacon , Mark Salter , Aurelien Jacquiot , linux-c6x-dev@linux-c6x.org, Richard Kuo , linux-hexagon@vger.kernel.org, linux-metag@vger.kernel.org, Jonas Bonn , linux@lists.openrisc.net, Chen Liqin , Lennox Wu , Guan Xuetao , Ley Foon Tan , nios2-dev@lists.rocketboards.org, Yoshinori Sato , uclinux-h8-devel@lists.sourceforge.jp Subject: [PATCH 03/20] asm-generic: Drop getrlimit and setrlimit syscalls from default list Date: Sun, 4 Jun 2017 14:59:52 +0300 Message-Id: <20170604120009.342-4-ynorov@caviumnetworks.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170604120009.342-1-ynorov@caviumnetworks.com> References: <20170604120009.342-1-ynorov@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [176.59.55.28] X-ClientProxiedBy: HE1PR09CA0090.eurprd09.prod.outlook.com (10.174.50.162) To BN3PR0701MB1266.namprd07.prod.outlook.com (10.160.118.140) X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN3PR0701MB1266: X-MS-Office365-Filtering-Correlation-Id: a8181a8d-47e6-44d9-b98d-08d4ab416093 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131423075)(201703031133081); SRVR:BN3PR0701MB1266; X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1266; 3:ZJNH/Hxv7l9Txy6WGPE8QHqc+pUutK7Ixc70aooH4g7u9IQ79HDR8qerDbdOaXQ8jQYF/y0eGHLRX7qElia56gy9mfMd5mRQyHJOjt2KlFC/xuHkevxbvDS3Xo9PQY+Dlwe+FSUKHkPWxgJUoAGIll9jCpX2SE1o9hjNjE5cgbthoJ4jsM1oC0BJmF+gg0BW5l+ehDzGc287NLSTLUrQAWKL8QAIMwEU4IMHYYDdmO8KAU2+q+naiGfAoJuDAnjkqjlxEugy0EC8aLUsKpl1VYXVvrrG10FRPnmk2mYiP2xHtOcJttzJOxjMCTJmJhCc8bofGC+KcPzTJRwWKPh5CA==; 25:EHhSW+KzOclrDWzWlBxapmpEh6d5iBAyu7NzUTn3i2qr5k7Y3caQ450esxyDqPbafLlgmXL6YzoMoO9VsK2ACpzCWLxMeEqPe5T+hdohaNby4rpkNhXpQiGvOjMs5/OkRFvkYt3B+ghh1uySBOZtRFEEL/DtdSo+In5TknrQlYnViBDZ+bqwc6w3/MzvOrB1VNJLwIgUY4yBIlLFVFvUXVbeoHVh7nU/iqPeyTBMR688GitmQkR02s0PZFN101wtvJ6HwJO0Gbyx8IfnPHynzWQICPRXc/qYN2LLf2ioO/oIBabOsKS45avNxVB6i2pz0F6n7R5vGeRAjEajNENdOfCsbgV0DQHaK917drYj6xNS8WHvOJmWKIlLoZL/L3nk89CI5BmCnBHKWplB1+PqNdDPI+UQHfOD/SA8n5amoCpjott03DV+tTvIORQIqDDCOEXxFmx27MbZ6R+3uEaDHDw5jRBqObAbKRbb4irGHP4= X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1266; 31:unbnfrEk9dJVIx8N5A+eyOxrlv74SWTiwIlSeMegfJ+3vjS+eVLpvOD0wlIMyR1PftxBMQMc72FpN0gygXZa98LaveT2MC6xXoCg7w2Lj30W6d0y1JgkbWvtFjvIyQ99kmJwTFeh/A7CHDL/Z5WuV8g5nUd1DUtjapRAERKO444yZvPb3iSo+m5TEvgiyh3BlOM4tfcHS1ICm6dVYxIsYZqEaBqT//GAcefKNclX1Zs=; 20:ynp1oPeb90ronqq8o0J4/0TL/ZRSdTJEqkhhsgeHqIpueswQzXJzSJMET3XS9xLQoCx9gaZkLfEIGlchMd4HuKSqKTgdjsomc1LnVqZlxZIicpBzexuN3azNRqybPNDzgpUNT5Q/Km6Pcf+9Im4chgjqSWjTclhgVjQTX9Jeo1IK4lZy99ZZs7R9HTGnlLYtmbUSSHvG9mky7yx/BPzfy0NZj9ycu7OnTnrOu1+BhCF2W3/ezgCmwLQBLUeC9ST+tBeyd2yo/WQqWt1R7KzxV+7qJ7zVAuH4wR2X84nrbWyonZPh2e0vs/dY2WUq/Z3iIPtdK68Aaws0YSQC5sY/vnebycSI6Uhv7QUSIFOOFy6SfE6G3V67tTrwxTjEpmtUCiWJCjitqQaYbsXo33PFfUTtFJtWVBfzQ1UMBD2BWSm/pQydPdObXfvXqiRsW9qyDzz4pVGIWUuFoVQVPfTQVkt3vvH2FATUqzf7nvBwDBisv4il6/X+xWTSMmRKZxnbNBbQ3WMzAtv1gm16Lmt4qb5yRtG+9ii6wjd8zmxSAAzR25n0zTGHfZLb9dYNvr5YgPaJVXwf2Jwp1nQttCoiWTj+3UamQ1HWPvJ4la63Irw= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(180628864354917)(31051911155226)(9452136761055)(80048183373757)(258649278758335); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(100000703101)(100105400095)(3002001)(10201501046)(93006095)(6041248)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123555025)(20161123560025)(20161123564025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BN3PR0701MB1266; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BN3PR0701MB1266; X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1266; 4:vuu/Df2S1bRG4iKvaozUHJcCKMBEIEzMsyNm008obVK6eHoeaiqFOnExzRNnBBCVU8ATciABHfdqLdwNL/7rqdkRSvJpwqvcwci/gS+ANhOZZphXMV1gnCr7/l6d9pdiyMsNbGebFJTPlhiOXN58UF2o5cybzTJk6qckn9H0mCaaZMYpeIjzQ5KIWjf8FrtYfsJzzVrSZZPl4P3jpiVgI+GWrniEg7R8uj/tT3yGnaf31RYamn2OAAsypdHlo9uYRsl0z0tImTahzeb5DQckF7OYfjEY2R5QjLgqfqIKYROVqOPR2ImqSjL5w8O+KgDFDjN7FMeP6VHLkoKcL15estnSBOSIUMERnzKdCGJFIY04g3uSxbYxM6YkmWyr/U3gCvAc5dGx0MLiC4JuyKcRXYl/+0EHEr+HKL3akAt5OpOuF2l6y2YkLvJfLiLOmdpUmfG6dNqYSES+2fU7uIFoixxrSfIx1HTGcLiicOOEIKs6J1YhdLQyKn/SKoLBUQK+ED0OYF5IaBWO4VFFivve8NYO8vxi12Kt/sHDDyrqtkWpLplRfeeX9qjEFbRXYCoQzvaN8PBiC09GFs0DSgyo1yfI6gv+/r8xnSA7iIbiXB31Jv5TH9ttg7+/EjLKvt9I4rNUs6A8m7zM2JDdKDhdGA/aa5xVL2ZeTTGXG2SQUTJVnAqv4WoeHO1EwYGBes0bsmr5u/KT8fXpkUOFTGFsW8sW/RB0HkoC3t+1wr3UIz7Y42MtOjmWQcKp79za4aRjVpodV1hVKtXn9vR+/fHXsgrVDviWP4icEDbtEKv5hWAPyzchziwPifqX6w38f8P+oUN6Ml7WrBKZxD6K08hrWR+/x1i3cw7zLi10PBlEjtjnDraafoe0Q+M4s2XZYM4rOc1jx+oASw7XTeLnjTaPcrefesBJgv8PHw1CyMHqqfqZRT8WKsy03ymwItdHAQpdudpctRSQXVFDSqFKvawqnUxFvZHqkeZIgekaNotdBs7EyLGQs/RcRLXz0kIQ3Lo+1qIjghtackIgGYUM4Mwb12/lqQ5gzfaIrutx9WY2+rT9g090Tr2TMbSg5j5LpQ1AI1gJqw9ouDuRyhI91Xfz9pglWJaA1DTVWIwmFBInqKrbudiD7BbccHc9UICGoT7mwQ7AHnMQJsrPPJniURm7jvbwtjvjqUb1X6BSfSWeR4CBJ5Dm8XAmGOjQBSR4xwQmLTQJjHJHrlnnIimZeBZG+X6UrX2FblgwyhiLo91MwVOpSki/+GPB5kmO6sD8BAyrCBv47Dh99A0l4EC8SGe0QrGN2LX3576acHigqrfWTJM= X-Forefront-PRVS: 03283976A6 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6069001)(6009001)(39850400002)(39400400002)(39410400002)(1076002)(7416002)(50986999)(76176999)(72206003)(2906002)(305945005)(189998001)(478600001)(47776003)(5003940100001)(5660300001)(6666003)(6496005)(2950100002)(42882006)(7406005)(42186005)(53936002)(6486002)(38730400002)(33646002)(54906002)(8666007)(76506005)(48376002)(4326008)(575784001)(8676002)(25786009)(81166006)(36756003)(50466002)(66066001)(6116002)(3846002)(50226002); DIR:OUT; SFP:1101; SCL:1; SRVR:BN3PR0701MB1266; H:localhost; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1266; 23:LHhD4WGthN7u8gw0ZI56WOlQEhsBslIlBPz2aCtaFE5s35P9QtIyabIpiqbhUQz6gVNl4Zf1rdTOREM6W5S7XDMgtRVzFdSCdrd5gpAGnPxdfcCRK802Ou5yNusDlTQfdU8XV4Oms8+qVbmaGrAQ/+F0xXs6MVW/aLg/WewP2P6/wq/G+MMFijU8VuDMklkaFMwTGxSwpaIsHRvLBrvZdbadj2waBzKhtEjCxVwjM8Y/z7Q4/Kd+irUMs21+g2A5fNY7xMPIpIVm2etuIlWowgfyfm+zGDULaxuXwYKumzDlQP0n3/aeSXCbrQ/pJEa449iN/KJAzcRZtcqQRptAHBAkJdPgNkQA64aOdSnqxejbmoChlWXLLXs9ff28Hb8RZFj9buIKxuTs48lpAgkvWVcncvo7X6W/7StNZc0kKBE8Sk6gMmAqIX8izV1r+Avt7i4+BRVoM2sXtmlDGn9tP5zWVq0YO5UdD6/9W5Q5RUbKzHdAmRGAQOC+FZEH95/LHcVzv3I3rSdJxtFS3hiBZagH1jSZldU6r1N4TGn21hk4S6IeGxDLXN6dI1piTeP11wtyb8MEIaNQnudNQsb1CQRaTVlqUdo67wnKu/mfxNWvMW6W/3Cs/vnw6OQLQJSDSORhU0AqumPhY2MQTBCzmwwOsK/WDaQMBoq6/B6vMUKkROyatDOi1AS3jkchCEWv+N1GNYQgWfMfmFE4Pwa9zQD5z3qHefpiCZB8zNfW2Fpmk4EUaSdVHt3uscUZkoZcIKIQG27gBbyjL1laErXdc3AAnhHCjJRzsdmhWQcBJRJN//AOdRsidCw5WyS6q6kck/oVDvRzWF+3/jadOM+MdRN0BpPnOGRZ0ZMV7kIjT9NmtHrkuEikCkvJkHct2O1Fw8rvQIo1AquH2QKlj0gSNWBEIkcibnhmZkeX0EhRBUf6PsZF+jjsh8+ppgrNNJySp8fgMcmUKJ6PmKyY45w7P1cg2f3ZkNB1BGWgTsNKu+g9DhMEvPtMaWgToMc/k2gm2SpqVI50cbO7lSWR42Mlm/rCZOP4hQbyX7aA0a96ee6mdmlqj17mX6wj8RS4dhuY X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1266; 6:p1BNnggoQgmsE7z0eo68q5aceFtOPu3qF3z0nrNwRwEDBLuhMc7b/6floplB9XyvPwawY+2bsNae/e5JQCQ09I7fmpc1uEFO16p98QZutP0iahP6ZNYZ53VQ/9Se3lF4PX5DHMdchd4Uw3nVK5j6B4wPng7HJVUIMl22fxGh96Hyq20hZkQdn/PS7loga5bzlC1te7u0GNlWhp+xttLd3XxmxQZLbfFW9GXXS218+kscQrdurcsx+vlBCZkL6c3pTbBMob0ZNgr7ZID+D8O+4zFbb8KOH3gPoxQbJ9Dv6P6RLJSAZyWUUNQfXtmB0/5XeGfigz8vS0cyPUJoQ4mNbtQuJ9RsQni2d4Lw75ASCCtRCjTH+piADQZvKIkjT5q1938Bsxk/gMiiDwG3vs/qjUowqw5BHdY46y3DuYz4EI+5Q6Pf5a/ikVCnQgfrK0STBWxKImPGeRzlHbjn13Bnx4nDOOMY2aCXijV2a55HLErfj29RlKf+rSanj/EkC8An+SC+hxp+NCLQm85La7xmww== X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1266; 5:6+vvmIggcHTamsYVT4zZ4CMQmowJuxM069Ugtz8lkHm8L5W+XkCt9dJ4mzCbKAPza27sjo1BYT8MfZgMJ3b0kHXD46kyYe5TneDQEoKxPTfg9wn/fLNPuOmeDZN3cJ8wrrINrcAfenIMIT9KC5Pl26axhESgUgBKvBpWbQNa/Ly5zm2ecINgWphNGC47e76SromhXHQco2QoDkbNBL0/2YMA+kOhmbnbS+xl8VrleWAkX5EjEpVo9DbwJD9n221ru5GwbyBuG8S2f8deKMGlfBuhhQZyNZR/ErSeTrqsi2h9jKLUO7OFVwrm1rfnlGlWvXrdii87lznrmxdIEUVoBr6Q40Pz2ZE/AqOAdUEOqdUsXphIlHIhzibp6sxq/qOz8DAn91/aPeQDdE2DWvS4W1rwbuxnHcQHuo+johq10B0GGVFcxJKgPsxAxQZTAGTwPh0Sbb7qFfDy9KmA0j6JQL+Yx4mXX91VG+iAtB4Adns50Glgn8RVh3v30+oU3SYH; 24:Se961WCwu16sdOUVj2Na6mLSLSA2zYoLmCeOGYkafCeBysBXOgz0RPpoRCvW+PXzdMej+dChlfdsmdfcJGj5/PX5ShIKGQJqf9DWld3qs0E= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1266; 7:rD/cowVgrakI3zAWl6p1oQu92qU5Gr7Je2KERjSZn8U5pHkEb+aCGpiuJ6Yx0pU9uNikc8R+XuVjqY5M6gOjxsWsep/FIvK0HenkM4huiwlxNR6qZMYG9Ms30ECXC+ZHuARcFBKIkviCMzI0CwC/qx32w5DI6/9/kZddscfmekPWNXcH++ruKGJ9nNDTJePVSE+eHUxoO9GNyzsFr3fnPtajccmLa+qQY3PdiEfhuFc414D+vyHtePIzvfs3MjbcvbPG0X9IMf+J2FWlrM3yHmPLPpMurbhNaXKJ/U+lWFzCKk2trskKK3c8QEjau3btCeQpaczsT9aYjh2C4YZXXg== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jun 2017 12:01:04.2131 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR0701MB1266 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The newer prlimit64 syscall provides all the functionality provided by the getrlimit and setrlimit syscalls and adds the pid of target process, so future architectures won't need to include getrlimit and setrlimit. Therefore drop getrlimit and setrlimit syscalls from the generic syscall list unless __ARCH_WANT_SET_GET_RLIMIT is defined by the architecture's unistd.h prior to including asm-generic/unistd.h, and adjust all architectures using the generic syscall list to define it so that no in-tree architectures are affected. Cc: Arnd Bergmann Cc: James Hogan Cc: linux-arch@vger.kernel.org Cc: linux-snps-arc@lists.infradead.org Cc: Catalin Marinas Cc: Will Deacon Cc: linux-arm-kernel@lists.infradead.org Cc: Mark Salter Cc: Aurelien Jacquiot Cc: linux-c6x-dev@linux-c6x.org Cc: Richard Kuo Cc: linux-hexagon@vger.kernel.org Cc: linux-metag@vger.kernel.org Cc: Jonas Bonn Cc: linux@lists.openrisc.net Cc: Chen Liqin Cc: Lennox Wu Cc: Chris Metcalf Cc: Guan Xuetao Cc: Ley Foon Tan Cc: nios2-dev@lists.rocketboards.org Cc: Yoshinori Sato Cc: uclinux-h8-devel@lists.sourceforge.jp Signed-off-by: Yury Norov Acked-by: Arnd Bergmann Acked-by: Mark Salter [c6x] Acked-by: James Hogan [metag] Acked-by: Ley Foon Tan [nios2] Acked-by: Stafford Horne [openrisc] Acked-by: Will Deacon [arm64] Acked-by: Vineet Gupta #arch/arc bits --- arch/arc/include/uapi/asm/unistd.h | 1 + arch/arm64/include/uapi/asm/unistd.h | 1 + arch/c6x/include/uapi/asm/unistd.h | 1 + arch/h8300/include/uapi/asm/unistd.h | 1 + arch/hexagon/include/uapi/asm/unistd.h | 1 + arch/metag/include/uapi/asm/unistd.h | 1 + arch/nios2/include/uapi/asm/unistd.h | 1 + arch/openrisc/include/uapi/asm/unistd.h | 1 + arch/score/include/uapi/asm/unistd.h | 1 + arch/tile/include/uapi/asm/unistd.h | 1 + arch/unicore32/include/uapi/asm/unistd.h | 1 + include/uapi/asm-generic/unistd.h | 5 +++++ 12 files changed, 16 insertions(+) -- 2.11.0 diff --git a/arch/arc/include/uapi/asm/unistd.h b/arch/arc/include/uapi/asm/unistd.h index 9a34136d84b2..ac6496527ad6 100644 --- a/arch/arc/include/uapi/asm/unistd.h +++ b/arch/arc/include/uapi/asm/unistd.h @@ -16,6 +16,7 @@ #define _UAPI_ASM_ARC_UNISTD_H #define __ARCH_WANT_RENAMEAT +#define __ARCH_WANT_SET_GET_RLIMIT #define __ARCH_WANT_SYS_EXECVE #define __ARCH_WANT_SYS_CLONE #define __ARCH_WANT_SYS_VFORK diff --git a/arch/arm64/include/uapi/asm/unistd.h b/arch/arm64/include/uapi/asm/unistd.h index 043d17a21342..48355a683e25 100644 --- a/arch/arm64/include/uapi/asm/unistd.h +++ b/arch/arm64/include/uapi/asm/unistd.h @@ -15,5 +15,6 @@ */ #define __ARCH_WANT_RENAMEAT +#define __ARCH_WANT_SET_GET_RLIMIT #include diff --git a/arch/c6x/include/uapi/asm/unistd.h b/arch/c6x/include/uapi/asm/unistd.h index 12d73d9d81f5..f67623137853 100644 --- a/arch/c6x/include/uapi/asm/unistd.h +++ b/arch/c6x/include/uapi/asm/unistd.h @@ -15,6 +15,7 @@ */ #define __ARCH_WANT_RENAMEAT +#define __ARCH_WANT_SET_GET_RLIMIT #define __ARCH_WANT_SYS_CLONE /* Use the standard ABI for syscalls. */ diff --git a/arch/h8300/include/uapi/asm/unistd.h b/arch/h8300/include/uapi/asm/unistd.h index 7dd20ef7625a..2f98394b77d4 100644 --- a/arch/h8300/include/uapi/asm/unistd.h +++ b/arch/h8300/include/uapi/asm/unistd.h @@ -1,5 +1,6 @@ #define __ARCH_NOMMU #define __ARCH_WANT_RENAMEAT +#define __ARCH_WANT_SET_GET_RLIMIT #include diff --git a/arch/hexagon/include/uapi/asm/unistd.h b/arch/hexagon/include/uapi/asm/unistd.h index 21517600432b..52d585c5cdb2 100644 --- a/arch/hexagon/include/uapi/asm/unistd.h +++ b/arch/hexagon/include/uapi/asm/unistd.h @@ -28,6 +28,7 @@ #define sys_mmap2 sys_mmap_pgoff #define __ARCH_WANT_RENAMEAT +#define __ARCH_WANT_SET_GET_RLIMIT #define __ARCH_WANT_SYS_EXECVE #define __ARCH_WANT_SYS_CLONE #define __ARCH_WANT_SYS_VFORK diff --git a/arch/metag/include/uapi/asm/unistd.h b/arch/metag/include/uapi/asm/unistd.h index 459b6ec15848..16b5cb32ec21 100644 --- a/arch/metag/include/uapi/asm/unistd.h +++ b/arch/metag/include/uapi/asm/unistd.h @@ -8,6 +8,7 @@ */ #define __ARCH_WANT_RENAMEAT +#define __ARCH_WANT_SET_GET_RLIMIT /* Use the standard ABI for syscalls. */ #include diff --git a/arch/nios2/include/uapi/asm/unistd.h b/arch/nios2/include/uapi/asm/unistd.h index 51a32c71ce2b..b0dda4de2bc7 100644 --- a/arch/nios2/include/uapi/asm/unistd.h +++ b/arch/nios2/include/uapi/asm/unistd.h @@ -18,6 +18,7 @@ #define sys_mmap2 sys_mmap_pgoff #define __ARCH_WANT_RENAMEAT +#define __ARCH_WANT_SET_GET_RLIMIT /* Use the standard ABI for syscalls */ #include diff --git a/arch/openrisc/include/uapi/asm/unistd.h b/arch/openrisc/include/uapi/asm/unistd.h index 471905bd7745..6812d81b3c6c 100644 --- a/arch/openrisc/include/uapi/asm/unistd.h +++ b/arch/openrisc/include/uapi/asm/unistd.h @@ -21,6 +21,7 @@ #define sys_mmap2 sys_mmap_pgoff #define __ARCH_WANT_RENAMEAT +#define __ARCH_WANT_SET_GET_RLIMIT #define __ARCH_WANT_SYS_FORK #define __ARCH_WANT_SYS_CLONE diff --git a/arch/score/include/uapi/asm/unistd.h b/arch/score/include/uapi/asm/unistd.h index d4008c339e89..7ad1bdcb8615 100644 --- a/arch/score/include/uapi/asm/unistd.h +++ b/arch/score/include/uapi/asm/unistd.h @@ -1,6 +1,7 @@ #define __ARCH_HAVE_MMU #define __ARCH_WANT_RENAMEAT +#define __ARCH_WANT_SET_GET_RLIMIT #define __ARCH_WANT_SYSCALL_NO_AT #define __ARCH_WANT_SYSCALL_NO_FLAGS #define __ARCH_WANT_SYSCALL_OFF_T diff --git a/arch/tile/include/uapi/asm/unistd.h b/arch/tile/include/uapi/asm/unistd.h index 24e9187e85a8..cf0505fe4b9c 100644 --- a/arch/tile/include/uapi/asm/unistd.h +++ b/arch/tile/include/uapi/asm/unistd.h @@ -13,6 +13,7 @@ */ #define __ARCH_WANT_RENAMEAT +#define __ARCH_WANT_SET_GET_RLIMIT #if !defined(__LP64__) || defined(__SYSCALL_COMPAT) /* Use the flavor of this syscall that matches the 32-bit API better. */ #define __ARCH_WANT_SYNC_FILE_RANGE2 diff --git a/arch/unicore32/include/uapi/asm/unistd.h b/arch/unicore32/include/uapi/asm/unistd.h index 9cf71c7bedb1..76ece524ab70 100644 --- a/arch/unicore32/include/uapi/asm/unistd.h +++ b/arch/unicore32/include/uapi/asm/unistd.h @@ -11,6 +11,7 @@ */ #define __ARCH_WANT_RENAMEAT +#define __ARCH_WANT_SET_GET_RLIMIT #ifndef CONFIG_UNICORE32_OLDABI diff --git a/include/uapi/asm-generic/unistd.h b/include/uapi/asm-generic/unistd.h index 429dd335def6..ef90d53ac9b6 100644 --- a/include/uapi/asm-generic/unistd.h +++ b/include/uapi/asm-generic/unistd.h @@ -464,10 +464,15 @@ __SYSCALL(__NR_uname, sys_newuname) __SYSCALL(__NR_sethostname, sys_sethostname) #define __NR_setdomainname 162 __SYSCALL(__NR_setdomainname, sys_setdomainname) + +#ifdef __ARCH_WANT_SET_GET_RLIMIT +/* getrlimit and setrlimit are superseded with prlimit64 */ #define __NR_getrlimit 163 __SC_COMP(__NR_getrlimit, sys_getrlimit, compat_sys_getrlimit) #define __NR_setrlimit 164 __SC_COMP(__NR_setrlimit, sys_setrlimit, compat_sys_setrlimit) +#endif + #define __NR_getrusage 165 __SC_COMP(__NR_getrusage, sys_getrusage, compat_sys_getrusage) #define __NR_umask 166 From patchwork Sun Jun 4 11:59:53 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yury Norov X-Patchwork-Id: 101355 Delivered-To: patch@linaro.org Received: by 10.140.91.77 with SMTP id y71csp494507qgd; Sun, 4 Jun 2017 05:01:54 -0700 (PDT) X-Received: by 10.84.213.129 with SMTP id g1mr6576821pli.202.1496577714687; Sun, 04 Jun 2017 05:01:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1496577714; cv=none; d=google.com; s=arc-20160816; b=lskcw08jxwkkILNl92/rBRkKrgX8lSBL26H3hEOvajuOQs1HONfM6Zx/yry+GYOocu OspjKl0MPh+QsTHM/BsRowRFfI4GCnglviB2+2rIC8KqGJZ3sdGLA0R/o2PWuXzopRTJ nrwb/ylVKfJ5jojC1+Hgf2af77wKPcnjMsdhuy1ERMzazXoz3wcdNOfV4k+iR75ULyGk QeXYBGEjXblGYniMMFWcs3VVZu7eo7cbwaLsFASa/LMbAjp3WSr0pX+3iOEL8nXtnnT6 VGbNBqVzBUu+66PwsK91ic+9c+xygQXfjOU3xNAZuTEZgIdc1ypgV3BnqBcPF1vNG6SA ybQw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:spamdiagnosticmetadata :spamdiagnosticoutput:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature:arc-authentication-results; bh=VXViIEttWCW5eoT7d6PbdTaen2SlTd7W7JgMXTYUb4A=; b=RKE+kUW8wC59TpCnKsgk0aIyYfGysZKJINoiqFO4XNMUpn1wOsLCDEa7BsFPk7xJx5 LJFyvc7hX0wt5SwdNt8iZpWjEZVPXTwKb/zZXFN/u1w15TRnsvxxx1k7hrn2K2hq/6/F YH/TJdZRria8ZWIyUPgmoxynFRxfiY64fbo7eYvjH6L0fFnIxV/DhgHoPzKBZR6Ozdzg 55gFI+V3tMdG8z5sAbrap+DS9O7EM7f76z3iNYqiwnqQ3IHfS9qlNxlhd3ujOJ29m0zW 9nbs4QKkSEt0AVSTFi3wpbjz2JFpGWRA/7jSzBKX46YqvyniMj8H5naZH+1xKWkOB601 Z0dw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@CAVIUMNETWORKS.onmicrosoft.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id q6si4555573plk.63.2017.06.04.05.01.54; Sun, 04 Jun 2017 05:01:54 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@CAVIUMNETWORKS.onmicrosoft.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751305AbdFDMBl (ORCPT + 25 others); Sun, 4 Jun 2017 08:01:41 -0400 Received: from mail-sn1nam02on0077.outbound.protection.outlook.com ([104.47.36.77]:65442 "EHLO NAM02-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751201AbdFDMBZ (ORCPT ); Sun, 4 Jun 2017 08:01:25 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=VXViIEttWCW5eoT7d6PbdTaen2SlTd7W7JgMXTYUb4A=; b=ik/DnerVnffu+7M8OtuYfHh32xBdJOcyYlODjkGL+sPiTet4Q4CvvOabKPve9V4IMEup23hqv3wYJZN0BMhazv8wZgjGDgF8UpZRLi78vlbHnRRIYVRgm/1dREc8i/cXfC03anxD3V3irwEAJSoD26CElhIl0y342gX03fqNTtI= Authentication-Results: arm.com; dkim=none (message not signed) header.d=none; arm.com; dmarc=none action=none header.from=caviumnetworks.com; Received: from localhost (176.59.55.28) by BN3PR0701MB1267.namprd07.prod.outlook.com (10.160.118.141) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1143.10; Sun, 4 Jun 2017 12:01:13 +0000 From: Yury Norov To: Catalin Marinas , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, Arnd Bergmann Cc: Yury Norov , Andrew Pinski , Andrew Pinski , Adam Borowski , Chris Metcalf , Steve Ellcey , Maxim Kuvyrkov , Ramana Radhakrishnan , Florian Weimer , Bamvor Zhangjian , Andreas Schwab , Chris Metcalf , Heiko Carstens , schwidefsky@de.ibm.com, broonie@kernel.org, Joseph Myers , christoph.muellner@theobroma-systems.com, szabolcs.nagy@arm.com, klimov.linux@gmail.com, Nathan_Lynch@mentor.com, agraf@suse.de, Prasun.Kapoor@caviumnetworks.com, geert@linux-m68k.org, philipp.tomsich@theobroma-systems.com, manuel.montezelo@gmail.com, linyongting@huawei.com, davem@davemloft.net, zhouchengming1@huawei.com Subject: [PATCH 04/20] arm64: ilp32: add documentation on the ILP32 ABI for ARM64 Date: Sun, 4 Jun 2017 14:59:53 +0300 Message-Id: <20170604120009.342-5-ynorov@caviumnetworks.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170604120009.342-1-ynorov@caviumnetworks.com> References: <20170604120009.342-1-ynorov@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [176.59.55.28] X-ClientProxiedBy: HE1PR09CA0071.eurprd09.prod.outlook.com (10.174.50.143) To BN3PR0701MB1267.namprd07.prod.outlook.com (10.160.118.141) X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN3PR0701MB1267: X-MS-Office365-Filtering-Correlation-Id: 2d67d393-6f32-4bdd-1c75-08d4ab4165d9 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131423075)(201703031133081); SRVR:BN3PR0701MB1267; X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1267; 3:SGphP+bOaiaYOyGmeEOsNsl20lgpXJodIUVhK1P/0tvG5KR1Ahh6OaZzH0g7YASB7dnrsC0RjNSF3aX2wLF3g0lyr36Zpy2peKaXeSc5823Xuor/36gs6SwctdJEs99VkDZ9aYF17QSUP1NvF3uXMlJ+3MJfIkwY6gdRy6T2x2ZX6w97b0bEPFuidey//ipmvZAMVG6VymaSc0sAH49RUVn78ud/FV2nW7RqaCdTqULYeumAKFEMJIda0Rkcl6uU9QNEzuvg5FWGzwkbiHUoB5iOBvT9hVCyKxbT8qQ6g4Cvv6CDys704wnpYxM5rstpkcI5GtIcK1gKgnQZzLg+aA==; 25:Raq3T0Y9Vgb0dX2fTtmAUJMmA5tiYprsJa9hhgcUwnlU9fWroKXfopATgjfzVxD4KERMFGKAiEPBOyzXjMmjgD5rhXMMMJyH0c2YdePs2zU33YwTkNVjbWliE1ewmKI2zW/NFyNmmWJFtlIxSlQXmLtk5dFMLsH8/gRLTsMP2YSbGcWDCl+5z6NCbXdPfyAevHpdx41H5QlWpY0rvPTe0+bPjlHNxIKGYYWxTL20LXacIuD7RwTLm+ks4J/PrcRm8+vn8a7QeX081oRn1/4sL43+rAX/GF3b/wwLwSd1OQdPqs2V5mOjLBznrxsy+adn63jCIfgRSPvvvQ55HuyZkIu1DAJzhACM1m5Y0cyDWEHCEzq96n+YTFHbjdfEzQ2rdUMA5C51ARfy2DaBrcRK/13n8wy0VphT2c9oJ0KAVHC6HG5tFxKpr/b7d42qJDYRLptdqoiBbKrw0inkuHkkV8B/clcDS9xDjZPD8rrM8Dk= X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1267; 31:fY7aak6WjQ3abI/pEo3hpCWYMb//r4jXHbzgbkCp1BEDtxngVzMJRWI8i8eOsKVgKTQ9xNorNlLhRdoLtZ1/6pCTPtT/8LqctvcAgtMYAEqeZc/Zj7vUMlzg2SKpdkvVBytY10XkrgUHDo3CA9vEjrr9y21Ojkksiq/NFDUM5OdADyAo2EU14zFO3ZMc/csHbTufDNuwOMLqlOI9LnFQSfhdk9jNIX+8VgprQlpxug8=; 20:xEOMKIinSOW7E/HzYGKNP30p4v7JzFxCHzmps43wwdbwEhzsQwRlChqHoO4xPxOFPcahUZufMucdxfmlE+EUmNxrGTdqXG4msHfFr8DgqNKc16kRcdMUFyhs6IFicpE7A0Gm3ECCvR/9JclaIjLdJekQ3x2Dok4wYJxN/rwPYn5HSdauhD1Pe0ljqWJORcfO3yiaGqg72prT9SfLARjkiXl8CiSxU571+u7biDJVtAkH5gyvwMd00QXA46hOIH+JT9JeGLhiYFYLKdJP1jyvuNqGsVoMqyhcsjutiNbALLB7OOg1AjIDSHjfBuxmBVBefv36rPB722GEWVCOgAkQt9BtwGjGf/c/lBD4iPRy5aCHvHTHXew173wKaq5ZmbQ2O6IQtEzXzFCG4WIopYkXzNDf/8AV0+oLfcoGjH55NZRVnseqwy7OMNinesUOKGZpCZPRN0dOyv6rdukk44fb+nT2AFgGCzKeZICjoak49oZOqxu16hCl1IiQsk6eo4HUHmFtYjMQEsRl4dd0ywvsM9csDZQIVEfbiIPJ9vbYqtGzt8U++WoQrYc5LaPhOG1c6klEuPQZoi/wO9xKU0cHI+C/SteGJtkIPX6Qs9eUoBU= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(100000703101)(100105400095)(93006095)(10201501046)(3002001)(6041248)(20161123558100)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(20161123562025)(20161123564025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BN3PR0701MB1267; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BN3PR0701MB1267; X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1267; 4:ABCauf8EupJ3jA2yGjwEaDaNmKUNZSC8t3WWCyn2gw3XnF3utsBEHcj+NPWGBaNSsjGUFOWiLkAE1vo38akYDx3xshhT2jtOKluzj+m1HBkPUGaeU5DPualFeOnRe9fVRo1FvdbZPYjqON7Tb9VYmq2DHvdH7D8sSnDLSZITg1AoDLUEdRt/gKJlB5AW05RSFDs5VUBsGRT4BT5BrHwQlWpnrJ+DRD3uhzaIOe672fTk7Ur1SuqInUvU/wa6NjhSa8iIHKMV1R2corgBuP+hBATcKbMay84jj40djuxiUEgKqcAuwFDtRR/WHCE5hyyhybj8t8gnG2vzweorRsiEq6H4V7JPRUC6ZET8s4l/uF1ge+PLZ9rbch+FwYX4FhYBrPP7T1Gw5khvLg5EzriKTQV2Xeee7vkWmVf5PfDKIOxvUHSiDK6DwIQglVF6bzwhUGg2njvdXH9tOK9yjemQ/kNE5gdweTaTpfnzVAnUgX2DCmuFswCDWpF3bi0XwiFQWCgw441dowE296xDCFbi9I2SubFXjLvvF1qA4k3LOmiuHWookUfUsGW0h6ubaVY9VDW+ZDkjlkqDz/f2A0TQtMrLn+LzL0/TNEpHCWsseOC2ad6X/xN9hSLWOz9b5UA4pcMIqO0GOszuW9krYXfwEXvTp0wYvnS0pb0pCc/BT9AuwEuhBaC5DA3ncPjtsVRnT8dBZDCQi4XeOtjgp1DHbVQZJmPJJMWusWWQU6moVH29RUfOeRPa2HTmLGyanWWFseFbYrmnHfllQCCdJn6qa7vnGQFTaGEz+JmGgsg3K/AD86DqTD8j94DvDBIfJK3ognHmJkLTM/O00+CV9WyjzABB1O/GZ9E4TF6Eu1W6rX+mb/to4TNBz5t1ZUZddyQIdf0SpFbl8bnPTwWJVt1Xb1pfgI7q+LvjkW2KE3bdcQO89rP6aqlghBRvNs+ixvv5yxk0rx8ipijwSvsb72xCY4qJjPQDnI9lDu8u1YBWoQNKG4e9xk6HhQnMc8Ilw1yt/vycwaXHPcREyAIQD/8vr0MFX+CSxevQdyYagjMSJAR1lz3mW3iCbo2LWtUea5Rg1fUDZ1RiVPXGIvSe1xGJIsI/Zeq/ID1C2vvSmoZeL3c= X-Forefront-PRVS: 03283976A6 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6069001)(6009001)(39400400002)(39850400002)(39410400002)(2906002)(72206003)(6666003)(189998001)(2950100002)(42882006)(5003940100001)(478600001)(66066001)(6486002)(53936002)(54906002)(50986999)(76176999)(47776003)(38730400002)(6496005)(48376002)(50466002)(5660300001)(7416002)(76506005)(8676002)(81166006)(36756003)(305945005)(42186005)(33646002)(4326008)(50226002)(25786009)(1076002)(6116002)(3846002); DIR:OUT; SFP:1101; SCL:1; SRVR:BN3PR0701MB1267; H:localhost; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1267; 23:bcegLgcfB0t6YWuC2/q0X4pbeHFv25IQtuvjzCN9IRLQAvkl5DVb6EkwPyVHVPYNHSh9SsBmYGAohHZ1KRx+kNvBcA4rzymuNl8+CTQrI5A85tNxcUHla8FSDvcxcNF/R/Rei4ttpyhurZ7vbukxhp90pBcYfcmI85Nnvh2RL2xrs7X9JfPoylqE1RoySHh2wiG6JwjZ6A3rdkn03uQ7FP++zksQonMwBXccRjT2y8TqZgBSR1Pda7Eua1T09XZvRsDkqqBtXgr4aLRrCyaalBjf6t2IPZv92OBkraRl12Wj2m5Z9rzse7eoy8C0IjKmUKy5TL/B0d+F2McJ1yfoqWVdz2qP19o+sBTnprON2htRnX10KqEgNCuOlAAP9ZBVjaybxbUWiXbe+sep0MeiKy4JC7Rr7MvZHGsc3TANdyfaVXn43ztldd460veoSCN63BVChBhcy9BRghowCtv6acFHCDuh0HGnSD7cLuX60MarPW4IiPs4SewFSwX2Lb3G2ux7CUTPHGeXfMLlJtCleg30s43U/3PhCQrYVpXegxjmleivb6J8bH1toNraFVbfpGOgiqlLJRujDIsoCqLkj825Ep7uhxBIcgG2VMoA+oH9KzT5yJIkaDqTZam1pya25XYkh/CkCmm4JX/ovqr+xi0Wr8r9cVAxjIC5g1x0NI9r9gF6Gq38XOqr7Ctr/YtvqM7KX66XRAW76tMGgae1RmXX2SXdUX2sus008bpqn9HfDIGFe5/wHgoMxK+vkAbdmT4M2skZa6Dp+CiAOXaTraw7jclKX+Nul88Avlynhl6tDNcmsTBP4Oz4DN9vp8lK5oKcKqN6dc+2Px4C9XSvVOqWec/trTZPjEMUJUlj0+ZHkLSRjFlL9ZFcDjFmiJ2CDPQ3fPSYpYNIQUJXN6ybVX5sgUALK3SP67keip8xLzKfTxkPMV3TJKNT3Lld3POkwKHcHA/ftXisDgXwe40dauMXhbBhAK06bYQJtHqoNU/l5wifUOi2MqUA/7U74MjK X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1267; 6:y0shucihTab/APfTifBk5wCyTSRD/g9DSL4MmNmopcGTZgY4thF1aUQ/Oz+w7FOPHaxJMrhZ1g6nqjVJxxW0a32ddI/FGfBUIE8iu0osdWPrvYM6U5DEfYBR+/DBS6zuCfIjIa0sE1wrVn9mprnyel+3VzKE1TVSLwczsPgtxprDUx4KHJ0SOnKUN+m6DFpG0P0/pcV+lR1kbJj7gJ8XaoxPX3h+JPtxdYpIgcxoFAEAIGHzN5+Rkq+zqd0x31GAMw8zvfvh5iAW+2B0cPiLnrIrcx0C2yyNoRmPJbjisqMBUCCsb2kGE6ABD7p/MVjwuuvwlpHuM/YV8TNP+ZGphWcGM5ob61tIqhDvONPKqRckIz367XM4ebqBRbwZCVn7JDZ6JnzLnAtqzV8Caw7xvH5GlcIaW2momG+XgvWoOudZdzEJjd0ChEMl3oVBzG8CggAskUw9++dWnhqzYI+eJOBdnZeW5sWdY5IAobEwS3z0WwWTaY6XJz1lbUmUUJ+5Q1r0GEJA/lj536Zvhhgb9w== X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1267; 5:W2jZxs3Lg5TKCK8aXvYBcD5pSFuRw3Xpn+vPDvtotD4Md8KfxZlrhQJW7BT+iHghNU/ow68raRS00pOk+VtC/kuSjQQSUmJkqLqqRRz/vo+PzQz1XGnkMFC2cnZQNifYsPUdBT9C2Ei6qSNxfRWes06eUQUUVEafvoJ+HoBLkBTy1bjmWeldeuIn+Y6OVrBCrI2FuLUX4Yd62alJyLj4V4XqKt/mQFXrm1KHobH957Agn7EZb+q4gxJfvpFx4lPG/AWij84S3oSnqflKtX4sdxUhxIbDALpN7JaJsDlqaKJGbcS2BDjUdHPQnn1VGMzG3q3KGYuMGn9Q9PYHnVlqMyN2AEk2EWLI8fQYpk0Zl9ZFYvAde+wyTCOKPWCoUFiR7sCrFoXMDllodtdRrxyh1meE/+mmdggSX+D/Wm9QG94BiBAUr1gAotaQiZlKxUVlA3npS/XgArWVWGDt/0o9l/1LpJgTkFNXS4urMKD6PeguOviahCUgTZbKHh0vLy9V; 24:cCzOYW4tX5K20CB3XTWc/rFEPqAxqWbJBJWsbgB25SW1qq8PzjxSaCjw6iYt8Vyhl3ZKHFSUlJvIXA8pGqlWvnWZ2nNiZ0vuDcKQH9wu7m8= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1267; 7:w9ukRVkw1ZEQdU+jVLuRid14eO/8n0cqX5iR3SIZQ5I/g8Ru2r9Rg7ABnrp/QuvlU4bQ5F8gBgHWVZe8H8Ow85t0bVFCtR5t5AIfo+1b6gsKqvjLs7XNXqDVBth4FF6uZqq7fCxkXnAXLb/ElBVvpF2RQIrgQyqWUgLV70ZlxInHrkoNfg/iw41jJQpTiMoV/1KqqsOO/ebpqyjn/2vz+Vs259hI217nn1AoKC+QaVsmm75zLL7XsVwNT+iVdQROQfc/VzBGlKLU9nuYHH2ehOBUbZQcoIjBdBWPnwNooJXFrkgy9NLYTHL0GZODy5LOJsyRSfl1AmrfyiqzVEbzpQ== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jun 2017 12:01:13.1700 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR0701MB1267 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Based on Andrew Pinski's patch-series. Signed-off-by: Yury Norov --- Documentation/arm64/ilp32.txt | 45 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 Documentation/arm64/ilp32.txt -- 2.11.0 diff --git a/Documentation/arm64/ilp32.txt b/Documentation/arm64/ilp32.txt new file mode 100644 index 000000000000..08935a34e7e9 --- /dev/null +++ b/Documentation/arm64/ilp32.txt @@ -0,0 +1,45 @@ +ILP32 AARCH64 SYSCALL ABI +========================= + +This document describes the ILP32 syscall ABI and where it differs +from the generic compat linux syscall interface. + +AARCH64/ILP32 userspace can pass garbage in the top halve of w0-w7 registers +(syscall arguments). So top 32 bits are zeroed for them. + +Comparing to AARCH32, AARCH64/ILP32 has 64-bit length of following types: +ino_t is u64 type. +off_t is s64 type. +blkcnt_t is s64 type. +fsblkcnt_t is u64 type. +fsfilcnt_t is u64 type. +rlim_t is u64 type. + +AARCH64/ILP32 ABI uses standard syscall table which can be found at +include/uapi/asm-generic/unistd.h, with the exceptions listed below. + +Syscalls which pass 64-bit values are handled by the code shared from +AARCH32 and pass that value as a pair. Next syscalls are affected: +fadvise64_64() +fallocate() +ftruncate64() +pread64() +pwrite64() +readahead() +sync_file_range() +truncate64() + +ptrace() syscall is handled by compat version. + +shmat() syscall is handled by non-compat handler as aarch64/ilp32 has no +limitation on 4-pages alignement for shared memory. + +statfs() and fstatfs() take the size of struct statfs as an argument. +It is calculated differently in kernel and user spaces. So AARCH32 handlers +are taken to handle it. + +struct rt_sigframe is redefined and contains struct compat_siginfo, +as compat syscalls expects, and struct ilp32_sigframe, to handle +AARCH64 register set and 32-bit userspace register representation. + +elf_gregset_t is taken from lp64 to handle registers properly. From patchwork Sun Jun 4 11:59:54 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yury Norov X-Patchwork-Id: 101357 Delivered-To: patch@linaro.org Received: by 10.140.91.77 with SMTP id y71csp494675qgd; Sun, 4 Jun 2017 05:02:19 -0700 (PDT) X-Received: by 10.99.127.26 with SMTP id a26mr15840049pgd.75.1496577739267; Sun, 04 Jun 2017 05:02:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1496577739; cv=none; d=google.com; s=arc-20160816; b=WTcWngzgvRYFynL36OzEzRaTYUs4c7JXXk+dmj1YuVGpkLjaO+QGJErxmMaDHcgT0z lerEUG7M8h4R6NyshbZExP4OIYRZDjOstpTuuTFMdbwe+eHenNkWZOgY3oXhiMvSUnN8 msicifG0DMyX0ZU1t7WQYTZu3qzk95FWTxOEr+LTYt4zYHav+88FnrxC/qsm0eUED8Iu s8nZEPgRbO1XAEmOVFaKkyuP5FnuoMa5iah4/Ovv+4gChA3epP+TUHu8QLsfQfiFKQB1 Ta1W22WWgWaym8AfQi7N/6pUoDud18StUSyadAdagJjY7nUNXdPp0CuqCUQcpktRjmAQ yHBQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:spamdiagnosticmetadata :spamdiagnosticoutput:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature:arc-authentication-results; bh=qyGDWv/Y4uXeQ2hMDY2/MF0YIXkcfrWFXdxzbIakVbQ=; b=hyQqjziAbAmHgMQEFHNUIgwJvU6zBGcLvkJvdO1Ctpdx6WY7OL7PjCLFlgiw6eGrTU WLoF0RZOdgpTOgaHgokThEJK9t+RhLGiSxvQKixXmf5mR0onc5syEoHIZfMHtocuYLeM vVbKgxBYOY7mi2loLTv+fYh19Dhe/U6w/Uep/XHkkURyMz1ad10bENjDOF/hvVY7Isrj bmeWs93/lotBff4qnbhEZj7/qz3AZL5z1U/5vxD812EAwEHdtGc+iNIVWAYf982Iu7NH vROTMOrFmM/sAsSV+sEpDDcO/0pRHeJyQEtSu4KWK7csydPYGX69MMwCHtYq8GjnQfCT pFPQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@CAVIUMNETWORKS.onmicrosoft.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 82si28290997pga.93.2017.06.04.05.02.18; Sun, 04 Jun 2017 05:02:19 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@CAVIUMNETWORKS.onmicrosoft.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751162AbdFDMCC (ORCPT + 25 others); Sun, 4 Jun 2017 08:02:02 -0400 Received: from mail-cys01nam02on0066.outbound.protection.outlook.com ([104.47.37.66]:16235 "EHLO NAM02-CY1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751201AbdFDMBm (ORCPT ); Sun, 4 Jun 2017 08:01:42 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=qyGDWv/Y4uXeQ2hMDY2/MF0YIXkcfrWFXdxzbIakVbQ=; b=nuwS3MGC7uczxAECLLrzBBoK8eP5gr83CLEqIrt+qFDdEhE3IAibQghMrMn898dRykVnIwC2cbs3SSGVHbOJIf/oSfbApBTGKNd3uNdCgbBLvsLtTjNDX9Qr16Ad6tcCs0pUZVfm8RsU02XCMEHDmn1LsAmyDLTZe+4SdzlGzds= Authentication-Results: arm.com; dkim=none (message not signed) header.d=none; arm.com; dmarc=none action=none header.from=caviumnetworks.com; Received: from localhost (176.59.55.28) by BY1PR0701MB1269.namprd07.prod.outlook.com (10.160.108.156) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1143.10; Sun, 4 Jun 2017 12:01:25 +0000 From: Yury Norov To: Catalin Marinas , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, Arnd Bergmann Cc: Yury Norov , Andrew Pinski , Andrew Pinski , Adam Borowski , Chris Metcalf , Steve Ellcey , Maxim Kuvyrkov , Ramana Radhakrishnan , Florian Weimer , Bamvor Zhangjian , Andreas Schwab , Chris Metcalf , Heiko Carstens , schwidefsky@de.ibm.com, broonie@kernel.org, Joseph Myers , christoph.muellner@theobroma-systems.com, szabolcs.nagy@arm.com, klimov.linux@gmail.com, Nathan_Lynch@mentor.com, agraf@suse.de, Prasun.Kapoor@caviumnetworks.com, geert@linux-m68k.org, philipp.tomsich@theobroma-systems.com, manuel.montezelo@gmail.com, linyongting@huawei.com, davem@davemloft.net, zhouchengming1@huawei.com, Andrew Pinski , Bamvor Jian Zhang Subject: [PATCH 05/20] arm64: rename COMPAT to AARCH32_EL0 in Kconfig Date: Sun, 4 Jun 2017 14:59:54 +0300 Message-Id: <20170604120009.342-6-ynorov@caviumnetworks.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170604120009.342-1-ynorov@caviumnetworks.com> References: <20170604120009.342-1-ynorov@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [176.59.55.28] X-ClientProxiedBy: HE1PR09CA0076.eurprd09.prod.outlook.com (10.174.50.148) To BY1PR0701MB1269.namprd07.prod.outlook.com (10.160.108.156) X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BY1PR0701MB1269: X-MS-Office365-Filtering-Correlation-Id: 4a3ece77-7961-46d5-2295-08d4ab416d76 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131423075)(201703031133081); SRVR:BY1PR0701MB1269; X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1269; 3:x7aL/c7xS/sRmiX0kqBxlNnkRX8/Aw6sB+ksGkRURfxqAN9scfQUhjHD+pFK+rSD8l8xjAGXs6leo2A3rkug+FusPP+Hddzjs79vPw3gQTkiKwGJ/7JBo6oUowtMf9db773FAdlXpXMxJyhxRaJHuIMUYp5zEBYQq4T1mFTlRUYx8n4Ips2VasVHnWmTK90EKbIwUxOP2YtBi5YnAOE8mijlgO0liV4bVpBLcAwG/EapoOa86yp8nJxAiUujZCJc0BBHExAtAGcK5M85izC1FPfbnHz3LBA23RaA7FmvJTg4MbgBnNRX4w321iNgzSR8Z4FQAxcRrtXQiEle6mIurA==; 25:0M2piO4reCNqXK7YGbW75FFdCRAM8EQsJyMaEBZ/RBGy/wOVJ9QusIFtDMshI6+84FSrmH/SD4qrpicAe47x22pUfpo+o3d3WutJyktnC6D48s1bE7HDXk++M4HtvSlK7UmL/DW9oog/iFtGBwabjXgPBzLS3k/SBySqo3a92PgsJ5j6F5aNU/ZqCM5JWe1ct1kwLJRo9KixsMflESq9z3e3JTQWZ1dtJcJ2EbBuyn4m5dg/9rTO/eCvYcbSRbxX7sYwTvFC443A7pMspXTfGHiwDA/+hd5jZ2nkZY6wW15CBK89AwUsKqPl/Vh+sONCsXYnf+3V4bYjG4Q0L59SLfif86C/RasO6cVWp9y+8nqIeKAgYnQh1krmYeRqHHKGJdUQt7FMgVtI0496TPNr78rlufZveZSqanT+wh9frEyknDu12ySNqHVcz0muWQ+bN3rJUimASk4dFbFge6nm4UOL9sd/jIX6TtVzne2ow7Y= X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1269; 31:aN+r4w5FyR0NLJ1HYUxtkRASxEoy7wyHiX5ybRBoq/cpxCgrJp0FU//ZVUEXbZBJsok8BrwMrd2NVti8Z4eURJ5VAuR7mNF+1nWN1xN1piIygSPwV582ysfU7xQ31YiWQuHFeMF5Ppl8fn1Sb4aszbUpkGfcmRluu+68aR49h23cxDTdTCp8bn11t5KManGzQDEtjGbIWCWRCST60q7JrsZIpIs+DSBvDMxx151njMU=; 20:NROwvxMd6t3srmyePk+a1JNlxIwa+ykYulC0+5As6H3fVH3NYoc01Qyu2zhazmCCclZO104cjc1rJUQBMBUOlEbmXm5MzRC3tGUBjpXdn2+6RSdA/YMRbZSITP1yuWALh92lfQ3hXQ1Nuxk4B7/DxGQkLb99ALa4QLUoAl00HGZ1U4iCR7bUj16BJZlHx5q1AlRZWgfLk3gLu2C68Vcb3BDkDByQyv0rO5llx/IbbrPg1SfqfBt5YnYV8E/RiUvBb5sBRSUMYtnYfI+/q7GJjXKUJMFY44RZE7paGBMkNJueZYvPAY2rHvA6NF8EXD2KCLgp2YnFlwde0cH9bKKgmA+Dif5XrhcwF/7SlkLGvnUpeW7D/Jt3NiTyi/pc1BZ4og/vzlzt++ixpJVtjDJmRStma1MPXUlbkOtEuULr/iIrCdXFKFSSF7RuA/btohbSMjr1Ux/VKqfs4+B2UNdDsO6vhRi6qpHcHw1NXxkfUKToTgEtGMeAo6SmR7Rm2GXzQ1GzLGzTt4nS1qbdTCjGPnEf+4ct6IquhN3Bzw1rt0oTjCc26AXeao+uYOA2+mB4K/r6mmK+UIPR18zXhBOcuEmZbyOWOl5Wd5AcMTRseVU= 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)(5005006)(8121501046)(3002001)(10201501046)(100000703101)(100105400095)(93006095)(6041248)(20161123555025)(20161123560025)(20161123564025)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BY1PR0701MB1269; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BY1PR0701MB1269; X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1269; 4:95lcRVaxUXtwPCMQxA9YboY/wN2UXBWHXBZgl14ZfP4eqSzBm8HG0dVFJdMtfVUN9bc+SpbwENoXs3qOZ/aL9KEyO+DysYsGiknciZ0/Zo5nWNwOPaflxgYMprzRn9rdl39aG2zgPetWX9ONe94kgfBra4q+okvqIFVxojPkcxg6VqPaaAHZMc1DKVPIq7JFlAY9ITtsHSb963YBCh3b3qCjPH1Y5cCU9rReyNx2or0dg3gniQvyJr/dp2nszi64fqdR2W4EIHosx/lQQ71C2d3JMS+/yxR+oD9tz1+Sd3/9fFVcy5u3W12O9p9zAB2rLiuk0fTX7nyqydCYTXdE2+HNTo25K5363DIgsxAgt5ql91ccm0xNa+D4mLS/eWVY75dqen/oVtEwpY8kwSSyP/UTs4zNDndMCYPx5QHqOWXG2C4jeMGVzzlqBgXeEgl+EIfSjq+2JmRazXFZ3CIqDZ03PN0qkrGglhsHICFB35IdcCKcvcGgh9bkJvbmtsEvwW+ARezfn9ChtkdsJ6a8t0SHuri0LyK7Ig3//v6tk2nnNUSh25i5XSDQKDOP9kcesX6ymo9qz7DmP2TUxriXZbHIl62X0V3U3QuxlKdGQowmrqTd2SLtKWsgolcu6aniG5iXrig/avFKGhdLzp4k602zLs/YcrVk1d8VLEA4aTduaTLFEB54hVgkf0CvAlFSnz0ThDuQrPdsaiMf7khRjdY+soKpU9I+/yUcxo8ye6vz3vWWhG2zKWnnKCS5tNhQQXbXivrsi4G6bSR7KDRwXJMBxzvhv1qvlptVhCKv8KCVMH9xMzj+WFAdlfHn8aPrpN89hS5h4k0Ti1DJ8Mi6kmGazcNTuCB3Dx0p1aa43hYJzuyOMkBL/4e8de1qoAOLmNQqoycvZU7fISJdBImvV6ajRGS8wnnw6tXTLOonwyAmmaqAHcEMbf0Y3Z4waZgUkuQ7urbYa7FFMbvV8Tp44GRCy4sMOMmJQ8oF+p7K+mN5iL4cUBhrj1aRCvlfBBCf8s5NLr5CF5Xvp/lPSfdtAz9x9AsRvBybUQurah72lBrOFehOQpmMHWfbezpNTIn8x5V7j7s1Niut0b49/vcZcMb6bXoDMbqSErGZEFWHviUzsy5FcZScROvYS/14BRL+2dK8epWuUe71MYNMT1LmS2pXv/G7X1Ha8xZnXf40JHrljViZY/FVHHJwcaVORTDF X-Forefront-PRVS: 03283976A6 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(6069001)(39400400002)(39850400002)(39410400002)(50986999)(76176999)(575784001)(6666003)(2950100002)(42882006)(189998001)(3846002)(6116002)(6486002)(2906002)(66066001)(50466002)(76506005)(1076002)(48376002)(6306002)(33646002)(4326008)(47776003)(54906002)(42186005)(5003940100001)(53936002)(6496005)(81166006)(8676002)(25786009)(36756003)(38730400002)(305945005)(50226002)(5660300001)(72206003)(478600001)(7416002)(7406005); DIR:OUT; SFP:1101; SCL:1; SRVR:BY1PR0701MB1269; H:localhost; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1269; 23:9sIKtT4NBWWwwdiuuqggBoXjjWtPixnfyv89UZKSc6qTr2peHApynkhTe/RK5PzuEGMrUBSuVszVPe7jfZWHRmhz/hsExLc3o3SYOwfklM2bO8a1ozk8SSO3IaEBdqa2bfLAcz8/gkK5fHiA7Cad9EZZ60N+S32ax2pvoBCJuLmbKtRGYZNu3I+opkzPB9B+7wTER7p5AuQs/9wvcXnqisvPhwA8OIc9i30TzsEPX1lOgV14tcJAS7fbkcseJMN3kAXR0W+qs4ht0rOgrfc1snoP3rDA3GsqB9TZwqhYeyct+bR9A/uPQZGQfw1XkdCkTPMtHH7x+f8szOsomFm/IofEDEbTW/oOAr3BQ0dSko71ppSOURB2TYRbmBUX5sPNxqyAloB0+nxJEQnlwnuT2CEgKqcqWPGCtT2IkCNuH2l8DNgdxsrgSx8JDkT79/x4rIJIrbhkBsMlu45C/92UbbLiaxbXsxFk4TbZP2iVPxZuc6mbflsYtaaW9zgFgwH6XNI94jX0BuvBwUqoTGO0WhRKkz6ZHlAMZy12uLccvZCz92+U3RnLbm8Kxo3/HkhdHzy0IYwGNSnlwv62k+LGbEeJLG3x45MCXkbCUj4CEmr/4PcI/MHBQHAlSfFyBGjqvWjTYHQL46pdge24Jnl1W3zHXIyqxuEOfmC47Mklk8tLEkDPH+Mx/8oTnhcCXYioVShG3N5Igr61BEYiHG6qbwsiWA8O4liiklLKE12Sz7mQjmURSoqkMsvCKiGU75gaaAHvxDYopJqji/CvxWR2gHcAHMk6CZUr6P9X2lWK43xfD0wzG35VLGSQ3F4rv3Wu4891DO2zasM1hJUundCZeAQ6jnSlcA5tEgWbnkjFM6AlaxGlSmFlh+lCJRf0sC/n8RDEkRRSL5wHnjAd+8427mV77nA5xdhNdx21IbxUH70rn9z+SJaFBNYcTlEA0M9dYL4qDxvKEG+jIxgDSon0jAIagqFFBQlhz2YVMYk0HW7KQX8VcjCVwrHv5MQq8IT2NmUd/coDCMc4rUHMoXLYiJ4oGbLf+WHonhJsjVQLDVzmUXhJJnDtj4pjNnWq3V9B X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1269; 6:GlT8wdjdIdh4bBKIgNg0heDMsZzfq09zigY1Rw9qE3q/dtLllGcRk4PX/XugPPaIqPunGovoVx7swFrcVI4w5PQ43JQufNWSRr3yab+qy5LcAVFWMCrN6ZAB7Pd11c2avGJK6BUqlyDjVAWwO15ex+09YHgVzY9HwXq6Nne7jTHIh6N9M9lrY6OKFddrc9HUovVYcm0Oww+7QfJtLqBeYwesIdo/XKFlRr83e9+xcBylzrwR8DKKw+ow66T8Cv5CH/LAS0ZVpAmxmRrwP/7Wv7nf5YpuJV/3Pd2b0h2CLq09tJTxCAx754CObUCvroN6w426QoH5iwTVsI80q+J7YYiuQ3V4WeYOZvUD87atsna/87Rh2kWUxql8dFqobiy3SWc5EfgUEgQ5U0JbEgfW3f8zfK+aur9OSVud4p7PQNEyxeiQGOIVKnvvWaDlSGJJMg7nQ3CrOgxE4CaZ5Tt6dY92qoUAkcTnhDeCk4+pr20+ai+j1VYbla5a0UnWji6UTjNfGhyKbcruxH9Y8Rab8g== X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1269; 5:n0NRCgeQd0IptoenyN16oUTFqSqu+nddnWAyD2Yj9YpaiQlYteg/EK3wQeFQE0rWHF9TISwR43wkh89QeIGUt5IT242GPCMpOYFWsa1gf5d7cTMCafWZSD3UkNh4vI/c1YRZ3gfB46Q3enBfR4pEpGdUgCXRJC3w8UVWw9dQzS/DRI0VJxgbEG9t0af4qOlr6EQ6JzQ/X2UAh4LA82n9QD2c+WWT9OPhSeZRtC0E1XrNAM4/cDn2GrQV/8hHbNQz8e6EY08iYm9c5q3mmhH6kHvGlFpitZWnQvQl1FqJjRal2alxMtqWsgODfSh+IEIMNE1HhQ68UM+N2E2eQqS+hggIbTcOadFLRokXSKTxgMgj2rQBvDPF2NvqSxcLAblIaxnndp33SqAb7a895mN2uNRqTaWvxWhS2T1yft0kARjXYmrXuuXLwhf/+gpmw9V2nePLMskJfnZkz0GClhsibAFa237CbVE6+ToacVRq40wiXfU4m+B1q1KRvdIYZkNV; 24:tG6qe6E9G5nGS7Yp4DADJrYELeaI4hHuWEgMlyAB1A2QZr35ezm+K1j8Mr/uEZpdm3e93ihdxBSLd3RkgFMMPEUUpOXSatvfJL5NtUzcF+8= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1269; 7:2PcwejgoFy3c2fWCRc7iwIf7t1DOglLAPnyvX/RVD1o7nu7SBhSwxuYgkYEfnUSYNHeYFaY1DPFumsEIx2ddHwYrfSxIAhdFQHfHUxUCDOInPq11ArFZt2wmI9ho9aA7pOweSlvvWMHDTShMqLtStB9XBX90gON3DOfa+7ca3MEcOScznS6jxcFjLYXamDf7ABiS3mNlhDJVkqwwsxj8JfZNLE2og56ajMeeC+xpCTZDGV1RgPN+6brzX4qMy8wg3hGfZqUeFKhH3be8eeagNmgb9jNFVJp6O61mTEc+3l+vJkEy2HnklS21s3U2MUw99yD3Gaqx28OeeI9+158YcA== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jun 2017 12:01:25.6919 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR0701MB1269 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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, ARM64_ILP32 - support of ILP32 ABI (see next 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 | 10 ++++++++-- 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 | 20 +++++++++++--------- 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, 50 insertions(+), 40 deletions(-) -- 2.11.0 diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index 848a34116c67..417760b2663b 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -402,7 +402,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 @@ -784,7 +784,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. @@ -1062,9 +1062,15 @@ menu "Userspace binary formats" source "fs/Kconfig.binfmt" config COMPAT + bool + 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 COMPAT select HAVE_UID16 select OLD_SIGSUSPEND3 select COMPAT_OLD_SIGACTION 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 1dcb69d3d0e5..3c70db6bd570 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 22f554320581..2e9f89217be5 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|\ @@ -902,7 +902,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), @@ -918,7 +918,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; @@ -941,7 +941,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..bc2f6b2fc2b5 100644 --- a/arch/arm64/kernel/cpuinfo.c +++ b/arch/arm64/kernel/cpuinfo.c @@ -139,15 +139,17 @@ static int c_show(struct seq_file *m, void *v) */ seq_puts(m, "Features\t:"); if (compat) { -#ifdef CONFIG_COMPAT - for (j = 0; compat_hwcap_str[j]; j++) - if (compat_elf_hwcap & (1 << j)) - seq_printf(m, " %s", compat_hwcap_str[j]); - - 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 */ +#ifdef CONFIG_AARCH32_EL0 + if (personality(current->personality) == PER_LINUX32) { + for (j = 0; compat_hwcap_str[j]; j++) + if (compat_elf_hwcap & (1 << j)) + seq_printf(m, " %s", compat_hwcap_str[j]); + + for (j = 0; compat_hwcap2_str[j]; j++) + if (compat_elf_hwcap2 & (1 << j)) + seq_printf(m, " %s", compat_hwcap2_str[j]); + } +#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 41b6e31f8f55..9d4490251793 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 4bed671e490e..2a7f6ac92e97 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 } From patchwork Sun Jun 4 11:59:55 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yury Norov X-Patchwork-Id: 101356 Delivered-To: patch@linaro.org Received: by 10.140.91.77 with SMTP id y71csp494510qgd; Sun, 4 Jun 2017 05:01:55 -0700 (PDT) X-Received: by 10.84.233.196 with SMTP id m4mr2342523pln.228.1496577715093; Sun, 04 Jun 2017 05:01:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1496577715; cv=none; d=google.com; s=arc-20160816; b=BR2zUYPWABKfBMWfgghdC/C/EfBfSgzMRfKG9aOK2BNRflgWFIY7n2nGxjegaXykfs vZfR7g/gmPaRY5dgpj8j0RS8di6XYPWXprSv4dJnpN5S9KbZdUkJZriumtcuwj/1xBNd 6Zyq8e/i1TereWZyRdp6+k9rEwIGuFHVyK2ufaaD8ML12o9n3isQij27mreWQOXfcvdF mMtW5qiW232boO9TUQDID/6fQdEly+ud2blPseEiPUCH6j/nE7YVZ7rB+a8/Remu1wKo 42LzxIrSub0JvQuEaPl5eXTXiDROmuQ6Fg0bYRXHIMjmcpBZk0vym9Cig51kzFeVermP 8hWg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:spamdiagnosticmetadata :spamdiagnosticoutput:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature:arc-authentication-results; bh=s9RfqUUaB/klcQr+G6MFhjL/JMc0S5GQEMdW+UcBQVw=; b=SxtHBXyvQmxlzkeAcrPL5NMPWZkRtwuYklHSNTvTeHcA1U/jQXf+Irz1hXYZWg+Kf1 RQt4e82WxREGQh5ZM9s7FdYyhS0hWT6yn9FD52nV2tmMlgdHvwt4zP+RvLDkqrntOfjz fvYeMcvyupQYEiaZRKj4pbXduNFwDedhd4J3H2+A3gFnSPWVPoC9Lrz8FZTM2wlhH7ii Nkk6QPXiStNv/bGdYMP5Jr7wKvcUKbrQX94s0HfnyrEC42/tj9sSLjfdfQgLEGDGAqG5 xNn9+TDyXOwjmWeVFbCCu3lID1vrxCf3Ohck90+rngdwJ2zqLQ8kTruyBmyG7JkXUPrc WHXg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@CAVIUMNETWORKS.onmicrosoft.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id q6si4555573plk.63.2017.06.04.05.01.54; Sun, 04 Jun 2017 05:01:55 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@CAVIUMNETWORKS.onmicrosoft.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751326AbdFDMBu (ORCPT + 25 others); Sun, 4 Jun 2017 08:01:50 -0400 Received: from mail-co1nam03on0057.outbound.protection.outlook.com ([104.47.40.57]:1776 "EHLO NAM03-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751304AbdFDMBl (ORCPT ); Sun, 4 Jun 2017 08:01:41 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=s9RfqUUaB/klcQr+G6MFhjL/JMc0S5GQEMdW+UcBQVw=; b=j9H3GCnS1BaCZRMQdE8vXR3+Te8l/eP7OzTUkrDcS69xzTDe2ooybsJK/mfxe47h6Pmagdx85jrd8ke6jSSxvkIikOPuQr9SrB8d17qIhWtOL1930EoFFT8ZocljXi4aXvaiX1ATPWzqTnWy/Y/GG+JgsR/0eJfMZD3VTx51XJM= Authentication-Results: arm.com; dkim=none (message not signed) header.d=none; arm.com; dmarc=none action=none header.from=caviumnetworks.com; Received: from localhost (176.59.55.28) by BN3PR0701MB1266.namprd07.prod.outlook.com (10.160.118.140) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1143.10; Sun, 4 Jun 2017 12:01:36 +0000 From: Yury Norov To: Catalin Marinas , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, Arnd Bergmann Cc: Yury Norov , Andrew Pinski , Andrew Pinski , Adam Borowski , Chris Metcalf , Steve Ellcey , Maxim Kuvyrkov , Ramana Radhakrishnan , Florian Weimer , Bamvor Zhangjian , Andreas Schwab , Chris Metcalf , Heiko Carstens , schwidefsky@de.ibm.com, broonie@kernel.org, Joseph Myers , christoph.muellner@theobroma-systems.com, szabolcs.nagy@arm.com, klimov.linux@gmail.com, Nathan_Lynch@mentor.com, agraf@suse.de, Prasun.Kapoor@caviumnetworks.com, geert@linux-m68k.org, philipp.tomsich@theobroma-systems.com, manuel.montezelo@gmail.com, linyongting@huawei.com, davem@davemloft.net, zhouchengming1@huawei.com, Andrew Pinski Subject: [PATCH 06/20] arm64: ensure the kernel is compiled for LP64 Date: Sun, 4 Jun 2017 14:59:55 +0300 Message-Id: <20170604120009.342-7-ynorov@caviumnetworks.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170604120009.342-1-ynorov@caviumnetworks.com> References: <20170604120009.342-1-ynorov@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [176.59.55.28] X-ClientProxiedBy: HE1PR09CA0068.eurprd09.prod.outlook.com (10.174.50.140) To BN3PR0701MB1266.namprd07.prod.outlook.com (10.160.118.140) X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN3PR0701MB1266: X-MS-Office365-Filtering-Correlation-Id: 448655b4-9f86-413a-d4cd-08d4ab4173f2 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131423075)(201703031133081); SRVR:BN3PR0701MB1266; X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1266; 3:4Hz0LGgGzXvVYoxu/kSSHnfM59stQEjfv6ZIskAAX/uw/GqKjBpSMKj/FS5KGr24RY8QvFMSb0L2PbyZC2ptZcZsuv04/rcEuwCz7EeT2JpY9tlYbzqXx29897JuTy5O5fqZqQEhB596Iu/Y20y8YtPnXG67uN+12DFmHKcoaKLfEPX9wfwR4AnFGBbW6HlR1RdZHRtf/TjOPYt3FzSECsrg64LSdPaIWpGy3PqF3qxTsLxOddBPenJTlo2eH6tBQ9fR9TMVlIf1g6HAbIfaBAmBVCuD3fCM4K6wtt6YtTjecVj4rjHadzqOqeP0Ci8OPlU2VvmDf6lbtYV86KliEg==; 25:MA94ZuoyT1dJIVoiuFL3RlyRJaUw4NIUb7fxrcaWdgwElsOdEd5XN+nvUfNwIzeQd1w2ljmEnE+08LCqqhZSyCSjVoc9NXOM+CDxL35fD+yvPO+aGaspdY8Ivm23WnLrE394o4R9im3KqpOMKJ33KYjZ0djU+B7ajn3NaaQ4WPEdBwIzNKKWqVziSo72ZPqXQvbaM4kXz5soZ18OCvwiWjC8BKkdjhynIvRMJfbWubdA6143h2h5F3/PrQl1zdoMHyeY9wyoNs1w4hputjbrIDAH0cLdGxlSRl0pWYNjlsxCjl19lt9qNwYC2FVop8MwZ0WhJKbrXEF535+5A+2TTQUpMIRcWsiUwZp5GZ3O0P8ipWwyKAjtI57RVsr/t/wEeU2vqo90+OsYtSozxKEY1pvxSm80sI45+jGKKsKdq5KyzkkpkkbiBW6tOg89xy5zDkP2UKSb8uMJjt+Qj8cfeKHiK9Jw1iYwgjlc6nIRrVA= X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1266; 31:TA+AtwOkpPzXIBJfZ8gS+jv4YAp4QD/nGWLjSMz5//2AIqN7DhYKnUole1kdHUf1nbjCFPALWpjt6LemPbyUEEiF/jeKOK0vqnQuW+GvqoBkBuBkyrQJKWB3XISKdyJsuAis9O8mIrnRWTGwazEJw2O5JLSWSuW0uRtFilHABHAqyiJ36Uu6hK5wboNbiL0vQseFJtqoGaeMWP7vw7DYkGwEyq6IaXAqdX8Pa75v3l4=; 20:yNsUmgeYWk84okafFWMhht2djRGZDL1sPBRVu3jKAZYraTxdgK62Jn18wDFZeJt4eRzxqNo4EDbLTShlJoVGGuTI7MzAaxJdqIQhUbRdpB8IkCUWxcmVKYLvz+odcug02amEo9TNKrUNGZe/Q2ihJov7Ujt9PmNYW9IpdKWXKYK/bTRjfXOj+2l3igMtIuE0SN9YyU8szHi7dungZTc6/wercNv7ImD40mguKau3g9BPOX9c4ms3AyzGuit5+/widTVDfwskCoRuk6Bd2GOEEN4nfTyCc1rwZo+3rXmUdbMhu+AuT7hdxt21FmGbTNrlP/jPOxVxBh+j/4pRPV3Z0YGnxi9phrjKBysILmN3+GIVef9aPJR31GlmyStcc0lVgej+ckw5aGf/0Ph33gmly2V8JHbj6mIJrIjvWmOeOtUdotefo1W7wLXIEBOvq8yNzzHJuEyAT2R+AmRHORCqbjFlg4tSbZVyJW3uzol2xVzwe+QOdoeRY22d1wlQVQ1tGk/KZEcC/JH1trU92rCRuRHh9pKoSfA/hJlI/HHIk80qq48t7RrAPb6wqCeJEJ46OTHxUaEj/JV8x+kVTeMVVyNsBiJzyvSAVkCSvDMcHj4= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(100000703101)(100105400095)(3002001)(10201501046)(93006095)(6041248)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123555025)(20161123560025)(20161123564025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BN3PR0701MB1266; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BN3PR0701MB1266; X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1266; 4:q5QqzEa8+0mocZC5k4tZNsBNy9V0AL6ifFZLaynpaPzFWe1PluJ2vPSjDckOjmzo+KZBj4Ff5V/KpLBovl2Hnd7GcMgPBb7C6p50U1CvTS6QZqimlcl5BfBDckC4p0QvIGr3CFqnxJAIPUFitRdHD5Vf3JD6286rIgP30u63U/vRM9v2txlajHcSUMgdavYLaeQVNtktKWkSqCPbHw75nbYXnjLnieGpLq2echKWI1wLi8eaGKbB8qruumkdAAMPoP/TujQec2avl2kYLO1SYAeePBRFycM0zhtVIe+SwehJrLTHmVbDZdvIPCo7cYMpntKt1jcTGKgoVFByLFtR/TWa+X3eZX90aEnOZLlLHY6saXJLYGuUM7QCKBkEHIQVxRsIY4udam40wJ9Iml9ZnayjiUx3jKNrx2xHd8IRSgWm3+6PKJZ2TjekChuVgfLq0SeH6vHL9CYvt1N50lTr+m5VOE68Hez5JxfT83tAO5PUoqBG+2zff7ilEpyb+dRwsWkzalTwOq37FAN0h6RZtELWS9BKUZgsGLyy7/o8nXbP/5wZDc9sWZLCqqhZEM0uMXNgCflW+JAaemm+nED+cIFixVjDODf9evHo9/5lhcMP56pvb+ZI3vaW7f71dkhIgZXt/Gt58h396LCYat1VLnkBi5NGwDNFaqqlESvvv0aK/hBuJy0lA+h38ueKS4tWxoGDjOPSgaGIzHDifkoQwqc0tHzRJ6wlKJMvPrAPaQLMUX/b+qmD3tN9m1p27WViNhUJK/ihlSeGJGRZHf8WHXUdmC/RPQnCdZT6LGrT4BEkRDk4AHG1KS+sW0hHh6rIqeDdQ6YtzI5b9yokgY+UrnY+OGQb0ieGckKii0eCMsvrN0NZMMous3cXXb/ji66IK6NoFH/5imHDRE3QZ/CjdZgRzOM4xOWTGo8Y/gVZz9vALPlKT2wDD8zFjYUICiyAm6VaSoj+J9cOnywT6rCjLlwg4CC93N1YrJzL+Qd06ekf0L3w5+FM1unyEhliHlpn6yfe0xsE6cUrgzAYSMJPu++bA0iXIuctRUArTMTKduulWhKUmM86wtGqzbRZbFjJsB2YvDqvcqu+FrBYPpd6y4Fc5DnxFmHV7HbL4NfAonI= X-Forefront-PRVS: 03283976A6 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6069001)(6009001)(39850400002)(39400400002)(39410400002)(1076002)(7416002)(50986999)(76176999)(72206003)(2906002)(305945005)(189998001)(478600001)(47776003)(5003940100001)(5660300001)(6666003)(6496005)(2950100002)(42882006)(42186005)(53936002)(6486002)(38730400002)(107886003)(33646002)(54906002)(76506005)(48376002)(4326008)(8676002)(25786009)(81166006)(36756003)(50466002)(66066001)(6116002)(3846002)(50226002); DIR:OUT; SFP:1101; SCL:1; SRVR:BN3PR0701MB1266; H:localhost; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1266; 23:dy7bbshqaB+rIX0ZSqmXZ3ulcitwoAU6TOBRUqp3330jrvYyV6ufAOJUEooJBBXszBWPlFXXY0PnVFNc1qKxOmb/PxYs58jmL0y+Ou3yrcrgIk2HwTct4A50kCQMKQYpJgbHsFGrEoxjvI6J+yfE9Hq7XKldfsP97CLK4L8xubQa1t1j5sUmYKzPOCgWj4nZcrzrJkOIlHyprdZJ9B3cNLD9tUAW+JH1gC52uQNkeqAFRBdAR9bGP6T7xVFox5bjKAnYHTN+0qUiKe8EPja7Ys3n6/Z5e0pP1eSSXRVfln0pcPv8N4YpXCIpfGBOOliCCkxiLhEXAu5i2dH7Ppqy0f08vvm81Jv/QTdaNQ+hXVkEh5UKAKzaVCtbsfMzPQxVUrkIHPHY386ypeAE69d+BEfAyIFoqhd2ZXf/lu1oqfwkXTeB2HB0oulvA8WocaUC1+MGJhO2iRsVDAcSeq6w/vbD07aqIKrMO32SlMMI00gXHXN2K5yG44YG7wbf5sxi1ldi7jku02aSjcT/LZOCgRB65I6NArbA3apcnOcwzI9dX6xfMkPpA38jhhVoNQVIh2YuSYxzRallzNo+TtJJzt8JBb0P2gQKDM0BGwb0klBapQhea5sbux6wX+KO4+k6gToIxnw6oZMvhvgbgURrVNw17B0fTOvCF698bz4h4rtpZ9B1FxYUN2CEdb1s2mQGHsVFF4+mY4z5mvbHHRF8f1NCtNUDW4gIAaN+6Xjq3adcDXo1GFbF21O1+DXUP45y7hubbGDkCY3pFIsEr5bsH6t+HZQOIWP26Uuo/wyM7IIN70KTpFv3KfhhW/8pq0ecn0FIOv5PwHaYQxO7UDtfROmhXvXZera+i+MdMjC81varQVTbRJtvyIbEju7ORfOuD9B3GMPYfCKaqYxlKLnlX1MSwRCiPJ8PqxnqcJWPrvfahiCH24SzWsiMNcsrzhJ2ubTrZVpkIkfsXXuACuib2hAd0rJt/Ptuwmy+8l94RvQ2+tpPr+f3Urx6AshGsBlhx2zdSs4wcXqVqjdR32LwlA== X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1266; 6:8t7CFgY5pdZ8jDMuuW6K7c+HfOJK8o217a1QyJSP4wMmp5gXg4i7KD3nNhD26we5AR9phCAv7eLUEHttTNwEYnY8jY0BBKxpZD+EotAf6XMVWe2ynT73MkZ6dyOXEDhHDvMNUbZazYw0rXUiUV1X4FxJFDB5VF4yixz1ZotXSJntaClJF3IK6HkcxND6Ge9GAz4VGVboEnv6Mm7qF1pzimraAEc6BhBDK+3h2DSpu+Yj9BRb/8IW2UuwatXiaAYMu97GXVrHug6MUFhqPJJAHAOKJZ0qbjHJwRVP2yvNn8aGat1HvFmlAkc40Xre40CC7Lc4Q0aehg1RWV4P78spVKChavn1heDxO39OYcuWzNJ17OHUOwhqyswDVKFN8z7uwj83O+vOJkCIu9ArStkE/3I2QHIo3PalUX1wa5X+ttGZRKPzrQAf8ZiXO5LWs0a8gqqEFjFo10dD3DU8iVeGHa8C+92KuQoRRAr4Gfjvrb6XeCZOJkSvJGk68vH0jLl1nLrE+vClk/aBVgoE5xD77A== X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1266; 5:TiTuxpQX16IlwBuvFH+THeVmOOk1mIvqBATTTEyQPjOkqhh+wTljjLopvlXKB6+6q2cji0aXhDwvEpbad5LkkqDoGi3BjrBAIA7lB61IDhdSsrPnzhwKmznY6pXzAf9aBkpqSozYwcGRJflT+FBvkAPnyIx8czj95pyH5h/QTpMKp0uukaLf2yhMrzSsTvNCJbZ5/LRBeYFQcnJqcEQfdmyL3oJ5JXnGG+SZO0bFJy087LppJAuN/1b/s+Vzd/3hfI2R9l0FDKS0nItsocSLKX0PEZvk7Z45tr7yLsvLWQ9aydqMw741lC5TXYSb553YIPOAHGZAhksmeEUq453IQV4QAwZzhnZL7ziZlJpXhhE6U6b1O8oQeL1on0LpXwyOBrpNbDmYZzGuaVMrEs4uUaPQZngfHOdhRNrGR5vOCfXW1wytYXdUYAtbBIS0QROlkv1z8878SuBLIAuvk/Mpw+R2IzojDsymRw9rCfFd71TL1B8GBvvePlxpwF+l7GIS; 24:1ffkRE4HkSG+H+6l8kjlTVjWQZCTutj9buWI0wBCMSecqII/B8ZKl6V7RwVeV2YEHvwRn3Bb2JAOkxHzrgxHUtNvNV5CvOV6eGlfcf6EMmY= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1266; 7:nHp4FCyvcwYne3gk3FyiUP8l7kBksSmpDChTuN02uVlgeB7jcgDOimaj84bfsW622CwaB0EKrgW/uR7/gKKMQh2veUYnDPo0jaOXBRaWaWCW+H62oOKTliKOmanw0pvBZpV0kRzxYD0hKckukfaK3MLzPbaiLPf7y6o0/78CVb3gZo9iY0owIZ8lA9Y7AdetiOnddEMaDZ60yhmN4Z6S/tAFKSIsQuw1pjus/ru/fTX6yTpwekD5dQCzz39bG2qU2pfqaaVPkt7mb8JYq1J3A3frue5z82csOmGVPFlSZnQwXACd/L2kqT3/sRILcmuWPedLihsNQe3GH4EfRD2vDg== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jun 2017 12:01:36.7913 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR0701MB1266 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Andrew Pinski The kernel needs to be compiled as a LP64 binary for ARM64, even when using a compiler that defaults to code-generation for the ILP32 ABI. Consequently, we need to explicitly pass '-mabi=lp64' (supported on gcc-4.9 and newer). Signed-off-by: Andrew Pinski Signed-off-by: Philipp Tomsich Signed-off-by: Christoph Muellner Signed-off-by: Yury Norov Reviewed-by: David Daney --- arch/arm64/Makefile | 5 +++++ 1 file changed, 5 insertions(+) -- 2.11.0 diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile index f839ecd919f9..5ddfb3140f7a 100644 --- a/arch/arm64/Makefile +++ b/arch/arm64/Makefile @@ -50,15 +50,20 @@ KBUILD_CFLAGS += -fno-asynchronous-unwind-tables KBUILD_CFLAGS += $(call cc-option, -mpc-relative-literal-loads) KBUILD_AFLAGS += $(lseinstr) $(brokengasinst) +KBUILD_CFLAGS += $(call cc-option,-mabi=lp64) +KBUILD_AFLAGS += $(call cc-option,-mabi=lp64) + ifeq ($(CONFIG_CPU_BIG_ENDIAN), y) KBUILD_CPPFLAGS += -mbig-endian AS += -EB LD += -EB +LDFLAGS += -maarch64linuxb UTS_MACHINE := aarch64_be else KBUILD_CPPFLAGS += -mlittle-endian AS += -EL LD += -EL +LDFLAGS += -maarch64linux UTS_MACHINE := aarch64 endif From patchwork Sun Jun 4 11:59:56 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yury Norov X-Patchwork-Id: 101358 Delivered-To: patch@linaro.org Received: by 10.140.91.77 with SMTP id y71csp494746qgd; Sun, 4 Jun 2017 05:02:33 -0700 (PDT) X-Received: by 10.99.165.29 with SMTP id n29mr16076562pgf.233.1496577752896; Sun, 04 Jun 2017 05:02:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1496577752; cv=none; d=google.com; s=arc-20160816; b=dMGENSlJvrY8W9r52b50LlLm9PYWddu2xhPUuO6F2zYHGk0TIhRxZGt8+iJJl97hnG hh8TWn/3qyBm+p3egD1Lx+dKG8n3rMQy2tu3tU9qyZ2sOuonruZWH4hzksbYnFgnDxZ3 Y2UfEnDJx6oRn3DevCa68uAC6W85Zb0nsxfFo0bk3o3QMm0Wrxb4iSAP5wUKBp6jcmUe SGRGNQfxmCq6P2gUDQEymtk6aI5JYzeuf3d88T/Ot5cLwY1EWloOUAPXXON5LeQF7X33 WiAfGp1lLWtj53WPVbwKU01zEOsMtpB7XHpYu1VTxAXpy7cULtuWLMGG1iFM3mEd5Lr7 NZOg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:spamdiagnosticmetadata :spamdiagnosticoutput:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature:arc-authentication-results; bh=uGpNK+N5iMXGRAC7kk0r26ThobgkXBvs5iyly9AyIYg=; b=ejJnTHwVRVn19TzLSj/t67FFtbqmHJ16Sch86JF0IP0kmo5B46sQYDcnce64rDgnSg Ft+gWH6vxFCGcI+UQHWXcsymZRy4UlUsxelIvLJ43e+j0h6vCLH7K9IMq7Kch6625mUI 8yOIVPVhmMTGwG6W/WN2nDN3Iz7mu/08KJNhYoGoS1gP5ZqjKi90G1TCfUaR95mOmGU8 yNCH9hWfqIqZ+9nGcvfVtfR/dLpBbmm2JR92sRXSFAcGLVje1s5UmhcNFhvK981fSevI O+DkwcRwbX6MbyJ8Lr83WwVvXXmNYa4YKFcKsXCe7UXoOUcsPvbeMS668VMWzd+aviPf Ouzw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@CAVIUMNETWORKS.onmicrosoft.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id s127si3838093pgs.296.2017.06.04.05.02.32; Sun, 04 Jun 2017 05:02:32 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@CAVIUMNETWORKS.onmicrosoft.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751354AbdFDMCU (ORCPT + 25 others); Sun, 4 Jun 2017 08:02:20 -0400 Received: from mail-cys01nam02on0072.outbound.protection.outlook.com ([104.47.37.72]:56987 "EHLO NAM02-CY1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751339AbdFDMCB (ORCPT ); Sun, 4 Jun 2017 08:02:01 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=uGpNK+N5iMXGRAC7kk0r26ThobgkXBvs5iyly9AyIYg=; b=G3/GbAOFkHIc0KsdcVeWhJHihvxWEGkcyIdSELlHj1dJ4g3VVU692j4LT16wfJHR/iBLgNdbFSbqepa3da/IzV/BWTZ37imwegdyKujxhTp37jpkUhWFUV93fRqsZtQSF1y35vifI8Iux6kmd5N8mRU8EG7lz1zttONC2YfgK68= Authentication-Results: arm.com; dkim=none (message not signed) header.d=none; arm.com; dmarc=none action=none header.from=caviumnetworks.com; Received: from localhost (176.59.55.28) by BY1PR0701MB1269.namprd07.prod.outlook.com (10.160.108.156) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1143.10; Sun, 4 Jun 2017 12:01:50 +0000 From: Yury Norov To: Catalin Marinas , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, Arnd Bergmann Cc: Yury Norov , Andrew Pinski , Andrew Pinski , Adam Borowski , Chris Metcalf , Steve Ellcey , Maxim Kuvyrkov , Ramana Radhakrishnan , Florian Weimer , Bamvor Zhangjian , Andreas Schwab , Chris Metcalf , Heiko Carstens , schwidefsky@de.ibm.com, broonie@kernel.org, Joseph Myers , christoph.muellner@theobroma-systems.com, szabolcs.nagy@arm.com, klimov.linux@gmail.com, Nathan_Lynch@mentor.com, agraf@suse.de, Prasun.Kapoor@caviumnetworks.com, geert@linux-m68k.org, philipp.tomsich@theobroma-systems.com, manuel.montezelo@gmail.com, linyongting@huawei.com, davem@davemloft.net, zhouchengming1@huawei.com, Andrew Pinski Subject: [PATCH 07/20] arm64:uapi: set __BITS_PER_LONG correctly for ILP32 and LP64 Date: Sun, 4 Jun 2017 14:59:56 +0300 Message-Id: <20170604120009.342-8-ynorov@caviumnetworks.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170604120009.342-1-ynorov@caviumnetworks.com> References: <20170604120009.342-1-ynorov@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [176.59.55.28] X-ClientProxiedBy: HE1PR09CA0082.eurprd09.prod.outlook.com (10.174.50.154) To BY1PR0701MB1269.namprd07.prod.outlook.com (10.160.108.156) X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BY1PR0701MB1269: X-MS-Office365-Filtering-Correlation-Id: 6c5de244-186b-41b5-7ae2-08d4ab417be2 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131423075)(201703031133081); SRVR:BY1PR0701MB1269; X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1269; 3:92ZhwWKnvwWPrfkCJoJJ3WdCvEq3+1zxgs0Jv7NuRz+qmMz1zsZcXUlGYqD5Km2TCKfowoat7pz3rN5SmeV0EuaBeuYIiM8DG7IK7sLhBNfr0uKRoEFGLAbt0Wqi4SpUrPUFcIH67KFG5/3I332XazDXh04xc+XGG96IuAt2OJlY3+wi2jU8EZ9JvJYuL47UoqXm11DGySwPi2/Eov+92zf3v8w8fCoKpbVD921yjSSovTBNW/Pk/ciQAzXVyo+cDuk0hDmY9MZ6JQvxYmUtq+WbvJBeHUwemdlXL4+2Xd+W13CDDInBVOcwz/b9NlU2SKds9nLpwqFjvK5TeikncQ==; 25:henW9mwaKKsV2OJP6qNHtMf4LsOoJPXcAh+OusWwkv4ynQ9JUP5u+gRgZLr3J5ZZTLDUfyjD0eA2BEyxvGcza0tb1Yi60ed0qy1S9Ccpk28f9xUY0UjDGVKGKSDqnIk6BHY5h5BhN299Vcs5jUPfqlueCDlev+rF6ru/Aax5nUM5yakgv+861O7sziMkj6qEF9Gswtd9iRRk5rwzCycQ68/l5lDI+1bsfRCQyzhnNusyM+wcmVPS73yVre2BoW1pNbnEElwmntIV06FCQPhBbYxrD62D12GN01zFHCTwE4UF4yIArgwvMDB7UBOkknZYUCBYL0BuvlohwEqrVji89KXTZxVsexBUbVC8vpsqk9i9vQxsugIh6BEML6Exneb6BYeYjxW0rGwfDtrw41Cta+QXOKOj/Uw0gki8yNFjdsZe4jAK1l/RS014LxXSiEIhK1dQvUlDyM7o7ErwWtnfviNIRXJaqjrhT9h+HsDXKgE= X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1269; 31:5Bqjujy3CHgD2YkEDjaCFBz+e1j3wgx0QEoMaWTDdR2dHg1ZkiEL1tnsjnydzNPlFMa34m69vgDeXipKiiGytHu3N4dNu3YJov5WlJXfZCbY6ZZm9dbKkGKgvhprVI0Y/OkIje/0v5baBACZO0elMRvR/MJvRD1c2WhZYe8KjT4uAZTuqz1YYe4qaBosKmwagxWPExB3EvwQL+V1bAmWUxCcwaRjPRtt5QY/COcPoMg=; 20:Bdu7eSz4CxD0j3c3UP9ZyP4ejAwbKjVfyx1JfpCnZ9CO3JqxTlriJrGfVmfUTJ203rVXRDpMF/mA+EqeQCBL/IYVwDFBmbWwGkXqT5xFlG0Sl8MXRrwIQHdl7ypOHfWWKTfETPB82kSls4U9g0YdsnaIju4fYxLbiPERIxQwoNJzFWFAbcxdXX2BNvlDfEeelqvSJdYGCjN96vxJRx6kz2SrlFTAsVxNZ9IyU+tD91kvz41a+FzPr8M7W8DgL2dGwo8Hp8TmDtyzYXFdCC3b4ciTkkI5uTVLbOjwnwcLxUnEWTKsmvzJItEApywRibG+REymp6FQKFXxNweSi/v4+ThVvcMKA5I91rF3SFTQlBodOO1XWkpyhALHI5tL/KbwnO2GbrzETxqJ15AAyVa3QbZWKr9ujIUnykospcwFvT5hcSrH8rOgeqmn9FdHhyFadN7vDR6HYIIPa8vuVgGUO31iuL+vMRriC1pm5X//vLQ8B/Owd1ZyplzzAfpE8XH3Vk6KoYvzGUSB8zxpKeSTDiXsJEEqADURjWkiNim5bNZpPbqFp3QsU3O1g7pthEyWeU2nQojdMKUp6PdSrMf7PEX7A92mg4MLovQ6KJeU7HI= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(100000703101)(100105400095)(93006095)(6041248)(20161123555025)(20161123560025)(20161123564025)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BY1PR0701MB1269; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BY1PR0701MB1269; X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1269; 4:6G0EU89MJ+6fIrMkwy1CFATLt+flvZ4yRKwZEzu9TaoPcGtjFoolKDBLJMGIfKE2R28SCmaTBG1KMsbfWsK7DHv3X0r2M4H5Z/BkVzBKIBljqPyKhoHZJK+dvG8aWXAeHoWTHybdTLmssQhMOA2U/kJ+B/lAg0ID/HCaoK+e3hvbxcFs/a/nbDIPsubQSWxePsnfGtH4Kme1PVhBsUDpdfkbxMF9pfiuBBMdb8IHumX9R+XbjrmC85cTOgaOGdFUYmB5Oyx67+pxU7h1k5CiWio+Xh9CveSKynwPRIsbhhOctaGnDepIaOvJYCvoXAfalUaIftssWz0amJT2Vd724LmxZ7dVltto7v+Ikt0DnHeugBNjRmqVLEg1tfkg5w4hQDz4/L0TfsCc0lJbSiRpGCx90ZW5qPrYSstoznzLUzLjaiOJ5W8cskEP1cd+34tC+PTDf4yR5bkwQRKBfEEUBhOBGK8Dfhie3budfXWQTGug+cPDAmpn7IGhajCBfdzUPlybJ2F2xH81VHBmr5/MUe8fMTPn7yKSp5qDMUwqo71ZAA+gzjqzPnhawOO6xy2uZdcLqB4qOsb4w3ISEP2scW9gv1BTWmpXZaU4KTS3H8jcQpr+9et4Cwk/SgSavujWhkP9NY39AqXze6IWX+3bRNqHLMkGuH7MYfo5hJY/5zHF19CnCWlcBeKbid38Gi9N789f/dxJb8NA+mXWF0zOT5pYrLiX13NrTKI/3zhkz0r81fmQyiO6BdLSwX5W+9D9A5IaOhVvBa/o79W2zmxLjtCvpeDgnxGpcb8brhIwWCgCtbSgfP+hbCJciYhGuG3wo5+Laxkdr5thUmoOhlXv/OruwViIpuDqMMEg5QjUthecllbx9dvThGigG/OVmzA7KQsRlWfu83lmGQhe8a//sXEhpfV9rltidqFtbXzTk+PQQwD9FNF51XtXxWXstd6i/j/+UWBKYI5QHP9h8zRLFjV9V8WYn1TR3SVOFFojNSQl9UnxZm7k3jOIyTAFcB/aQRtZwg32hiyr8LeXpV3wUX1tqGnNlEYRzeA95PE1etYXPWE/+hwn++Hj6m+dFF23QIpCciuhyFj1kR8f7Oip5oGaBcY/nwgUc/OuZp1a+C8= X-Forefront-PRVS: 03283976A6 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(6069001)(39400400002)(39850400002)(39410400002)(50986999)(76176999)(2950100002)(42882006)(189998001)(3846002)(6116002)(6486002)(2906002)(66066001)(50466002)(76506005)(1076002)(48376002)(33646002)(4326008)(47776003)(54906002)(42186005)(5003940100001)(53936002)(6496005)(81166006)(8676002)(25786009)(36756003)(107886003)(38730400002)(305945005)(50226002)(5660300001)(72206003)(478600001)(7416002); DIR:OUT; SFP:1101; SCL:1; SRVR:BY1PR0701MB1269; H:localhost; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1269; 23:5vOcJbbEnjyjOxtx7kildtKdaqUY3Iq4UE+0nW//kqFbK6okdY7XPuZ9U1uYDjoND/y7hzxoOxcOISXhevDLEPoKj3f5sXeylo0rzWi6S5IypZSGCZ/3Rg3G+BdjbC0gz/XA6n9KP247YBwoLyYf5budh1pBrqXn6douF3gJLUvpRAkdPQKw8ZVXdDymmzPWF2g/0tfggd8fkZLicwrD+CJCp1HuK5i4mLyc14YAn2SzPAcLXHgEMhLv99G0OVY0/QokRqa0MzABEQGTHIl4KdMvNOru1erWe9Q+2CQn/STHsmHUA8GXO+F/78skroHdzoutPO0BDVnAena5P+z0X6aiTCB85E7HJidZYq7qjI5F7DPO579gIt3hGEKYTD621wJxeKv9rr+YM1HOIGubHQwaniHcIVJvdmyKkM+V8XKmdqsjoek6SNcaTPXG5VXTw0AYjimg8GgAk8N1T+UY54QRvX/SCUPcROOHolN635AIjlNWmU2DrLDgYUYf2nkOuRt3rSc7sVHpsC1VrmqGK6pQdc9NteGPHPeG+hLLI77UOIJDvNr4X0r0pEZBH8pWpUT9d4dvZokb/7w7zKi1R5Nw0KuNMOoN9gBVwlxF4KMqooZlUA7VLrwWCtomIKJ5vy4+Lt2sIaz98OTLi7itQXy8QAGH/8Z3ne1FlcgDG74aTTjaTkg4zkifOL/pzsaiw2gmI9obY1KA3y1YExUGOyrFWeFPxLtOpbT5QRz8on8umpy8sinurbP5sGoT5dkLAyqgN5nD3tH+4GicGUJgcqCqc1unuaJ2L23nw9XSDp2xanwAhkfbQOYYcQOrf1ts5sMPgyjA6oAOR74uKObq6xGNO/AmLcbsublPyYq5JCAcBOKCOrhbT48ExMW0Ay/T+Eu26ULw+Bm+p/fRcSD5t+cJ4hrm5O+SDmjD9slSbUiWNiy80F7sNkMCdScItByRXZvgzcWmjANQswgu2TR8hzREI0lLKYICyNDkh40CghKVFoE9BzkDUOQ++aGh2n5C X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1269; 6:jL6XMTxJoMBToL4uJO1+nuscEkfBOS26XQAyC/Exu6bJ2URJg4ZcaviP0LLYNZPR/u9rlNgbUS02yYXEGP6XN8GRlb6SQ5f0zeJ3qrcwm2k0EO9hNhfLTTPVY8GVnBJoWCMLr9sd2OpS6qo3hX4XwqfP3pEJS2p90RsSFK0qGzftqglXj1Bqz2YuDpVnPfZFgrJJJUZdHEgjdRW7Cvl2o2XsWTYWVNQYPjiemsNf61UpZG4mSrDoxiOxG3pdsy2kjNMlX5kQXhDZc1TcBq8KZI+H47jn2RJZptm39kucLwxONsksd30sU+orjL455pEA47uRwrVqrAs5JO9yAjoGpyMLs46qW5OS9CKqxQubkn+fvImeifMbFtSL4t+cVDC3IaXOk9sEimOZZUS8F/8wMUkff0anwGI3BjN58kDHY/C+O5/Zn/hlpD29epFXo538Nk/qPV2kE+4Z5EyRSKuEXhE1wvQ9ooRS+TS79OsOjDTr2X7WsCaC9e/lhhkjaaiU7jJfMDalECN3Ci83EhqWkQ== X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1269; 5:UaYFzv0nPe0Iszk6mwovwyKXmjISZ9iTF+px0RNYCaBb4572zT88qUg4ICNSp26PaJCRDNWXeVPtAXDPKpH8tSJxPkePi7FV6mUvC0yDobCbfrbb6x2BtLNapAZZynLyy70FqeNFoGXXliUKi8ww/ztjxbNMp6xk5Dwi5ewQoSJkESezjPUVF0DJzWusWFz5/gQV9vgT1UXjZyzZOIIpy1Zj1eBeup8zsUqHaDo/9N+rjJvLB5Ff8qyGL3YTQQkMN5xCD6HJE8jUfkhHggsxbRTFIBTLFuOVf9LpDgOqyg5quAyp1jfjdc7FkQ8O1sxNSBglhA4wlgUzvvpN9DlkpQ/bEfn47cdlJ/b6JLy8ojfhecsPzRtDzgRjY3j482x2fL4FVpPmpg1xqQxTME2P5mfa9CXEonGBhsOFn/HWJ1Tg0hruKkNYw5BAcuxPOVeQxVUoVgm04fSm1TF8UMc+iWSxs8L0nbIxBrywTBBQSUhriCqosOdY90l+YSOezELg; 24:n7HrF37JhAOPc4kf0gB2/597gruC736x10b7jdzijPL3hHb0Uje9KussGYkXB6dRshpCbhyxmVwQlY7jZfBfhMnSmcgDQHvd4EDgAc+a5Lg= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1269; 7:aGfwZWvWRb4XG0CCBWPZPO0vWZHaNW5PbD87wXF8IO3zUFnod8Le0ReZqQXnPy9L3S7Ugj3iV5zhYKPpvBRQrozVyUQozOHxunQi5u6ZP7MgtmJHyszOJkvTRCetEDTG6/CHy+w9XxrPhjhbWd95qIjBxs7GTONknLg7Y9+Bb4pD0jpC4bcAkMFYDDZ2qDzdYqWWyloEE96HT4l+XBmVi1Zz1lb/+f7j7fSbeplCG6PG02Bne4YpGS4lJlgZ+n5JEvCK6JtcGk8bwxjmHvyp8Kcylf4vRnFnUxFq0P515VE7QRP9ui1vp9aLipeafrzo2KspmihpcLFeewYrqcPMqg== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jun 2017 12:01:50.0812 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR0701MB1269 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Andrew Pinski Define __BITS_PER_LONG depending on the ABI used (i.e. check whether __ILP32__ or __LP64__ is defined). This is necessary for glibc to determine the appropriate type definitions for the system call interface. Signed-off-by: Andrew Pinski Signed-off-by: Philipp Tomsich Signed-off-by: Christoph Muellner Signed-off-by: Yury Norov Reviewed-by: David Daney --- arch/arm64/include/uapi/asm/bitsperlong.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) -- 2.11.0 diff --git a/arch/arm64/include/uapi/asm/bitsperlong.h b/arch/arm64/include/uapi/asm/bitsperlong.h index fce9c2924fa3..4265243e326f 100644 --- a/arch/arm64/include/uapi/asm/bitsperlong.h +++ b/arch/arm64/include/uapi/asm/bitsperlong.h @@ -16,7 +16,14 @@ #ifndef __ASM_BITSPERLONG_H #define __ASM_BITSPERLONG_H -#define __BITS_PER_LONG 64 +#if defined(__LP64__) +/* Assuming __LP64__ will be defined for native ELF64's and not for ILP32. */ +# define __BITS_PER_LONG 64 +#elif defined(__ILP32__) +# define __BITS_PER_LONG 32 +#else +# error "Neither LP64 nor ILP32: unsupported ABI in asm/bitsperlong.h" +#endif #include From patchwork Sun Jun 4 11:59:57 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yury Norov X-Patchwork-Id: 101359 Delivered-To: patch@linaro.org Received: by 10.140.91.77 with SMTP id y71csp494864qgd; Sun, 4 Jun 2017 05:02:53 -0700 (PDT) X-Received: by 10.98.133.145 with SMTP id m17mr15486196pfk.164.1496577773454; Sun, 04 Jun 2017 05:02:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1496577773; cv=none; d=google.com; s=arc-20160816; b=iLeRdH0NBFnPl8fb7DYxho3QN9IX5Y4O7eLCPBGvVmVO3RcjI8WjqQMBombGGZbcN/ DyevPk7n+kz33m1fBzhq7QOHTGW+brjf09ES2griteYtrGHvw5maKWaum2S7fvpvZo+P gTCTC3bRMwZRlB4fz65lBcJPGok35eSCtmyTgPXv6mFz5nOV5IS8P3d99RQfMXUF9Vaj nNS4dedVwn/oCDPBLBs5jNdS0ZE+kFo3TtxXl3OrG1nvx4R5hS2oF4n1rk9XoWXy6Q8c qu3i7Zkr06qyQUDACVA9QVOvqajQtvIuE5t+/f4788O3Xa/vkiUm0bQ4079xY6yv7K2M NbDw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:spamdiagnosticmetadata :spamdiagnosticoutput:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature:arc-authentication-results; bh=Y1iVlrEjWItRZd/tRLn5+7ISpzRbMk57TlHHGGlEt8U=; b=OM+NQAdE5rCwXnfHgW6g0Ymz1Day/9sUS02t8oa/+cP3hHsDkfham2bhT4CgkUUtEK FPMRZlRMV7uP0dyVm6U3Gezpgu7H8iWVMqD1ZFWPG9LALcm93BTcI/2QE+W4gs72gBBy vtnCxnfcnI7M89JAxUAkClsgjlGBxBJKInVFGpXLKuDFKlVMfXbnMTo6xqIZavIppoYQ /nVpJpfAe4GNwpbgBHFsXS+ddlySDw5hjDOc1BYuJrnhe+E4HIbuNRjRQeJDpTtRTnJp f42mCmAw2fSOSG1e9XsAkeUAExlLOPo66t0I/aYXQjpM7FMZor1ZmsIjZ3ZP9X303WLv 3x9Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@CAVIUMNETWORKS.onmicrosoft.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id r6si4542326plj.223.2017.06.04.05.02.53; Sun, 04 Jun 2017 05:02:53 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@CAVIUMNETWORKS.onmicrosoft.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751361AbdFDMCg (ORCPT + 25 others); Sun, 4 Jun 2017 08:02:36 -0400 Received: from mail-sn1nam02on0058.outbound.protection.outlook.com ([104.47.36.58]:59812 "EHLO NAM02-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751284AbdFDMCO (ORCPT ); Sun, 4 Jun 2017 08:02:14 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=Y1iVlrEjWItRZd/tRLn5+7ISpzRbMk57TlHHGGlEt8U=; b=AB13sVf0s5YxcMJgj9ejdjFZJ27iQzJAQx2nz+D5+etYRjE9PeUJoywJBtqOeZBKBzmLBAcG1XW6ABMdij/7Sh3XXHCcneOmhWd5yTh154qdlcMJ5aQvLErJWZM0sgxb4szfe6WmjEXY/gthkXfakC9PL6fdj6xTftdFHlMM4a0= Authentication-Results: arm.com; dkim=none (message not signed) header.d=none; arm.com; dmarc=none action=none header.from=caviumnetworks.com; Received: from localhost (176.59.55.28) by BN3PR0701MB1267.namprd07.prod.outlook.com (10.160.118.141) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1143.10; Sun, 4 Jun 2017 12:02:00 +0000 From: Yury Norov To: Catalin Marinas , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, Arnd Bergmann Cc: Yury Norov , Andrew Pinski , Andrew Pinski , Adam Borowski , Chris Metcalf , Steve Ellcey , Maxim Kuvyrkov , Ramana Radhakrishnan , Florian Weimer , Bamvor Zhangjian , Andreas Schwab , Chris Metcalf , Heiko Carstens , schwidefsky@de.ibm.com, broonie@kernel.org, Joseph Myers , christoph.muellner@theobroma-systems.com, szabolcs.nagy@arm.com, klimov.linux@gmail.com, Nathan_Lynch@mentor.com, agraf@suse.de, Prasun.Kapoor@caviumnetworks.com, geert@linux-m68k.org, philipp.tomsich@theobroma-systems.com, manuel.montezelo@gmail.com, linyongting@huawei.com, davem@davemloft.net, zhouchengming1@huawei.com Subject: [PATCH 08/20] thread: move thread bits accessors to separated file Date: Sun, 4 Jun 2017 14:59:57 +0300 Message-Id: <20170604120009.342-9-ynorov@caviumnetworks.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170604120009.342-1-ynorov@caviumnetworks.com> References: <20170604120009.342-1-ynorov@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [176.59.55.28] X-ClientProxiedBy: HE1PR09CA0074.eurprd09.prod.outlook.com (10.174.50.146) To BN3PR0701MB1267.namprd07.prod.outlook.com (10.160.118.141) X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN3PR0701MB1267: X-MS-Office365-Filtering-Correlation-Id: 318525a0-31bf-4a1a-236e-08d4ab418259 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131423075)(201703031133081); SRVR:BN3PR0701MB1267; X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1267; 3:tK1fZf/sIOFnP85gOiyf/q/hGd3uwpDG9k559x8ba44FbYDrpKLv2XSq0kFkXzbMYT6ETUGJ6waVtVJS9MlrlcT+Fw1Fgs9T04JZlMXEIMBRrViKe9qZDI7/cIq291DVG4K+14MnlnJJC96AtkYbbSqgVpEYNdQVusB8eCscwDNyDSSi6QoDwJ2YUu/W0TJXVHXIH4zR6W+x8fz1+0kjwwl5iT56bHUd5UPCE5RruGRc6TySYj3Hu9CZyCotl0jCFF+10hW9mV1foF9fLnJHSUNV7fOPCUj4e1vxIu/52J3sDYS8db6oVpVAkbbjGGEsenIpwraiBC7f5hGQPyE6eg==; 25:W3LLagwAoMFUPGI4LGz4zeFcmOgZvAmVN7w3dNVccv5gaugfu0+FLd/bLyT4/LZY4HTLqaY2iAtbGu6rwlBZ0WxW2T/tED43U2433AhqJhcxaSdvJrHJ070GMLOerCJSni6+GW2JwRplhdcMOjS3X2BGxz1U47sW7kg5MqRxBDF3g6S/9TQok9B59cdXcS3c+NQBYA5PGkRXdZmQbgrTERNOWN5nJGKvwsoeEShqo9zO0e/REsWmRmivHYPxxFKZp5wLd18eYZhqOmvnljQjW9+Mq3YmBqB+Mfw7wVf+HisStmPT6LRQeYiTB/UoYuDo75zFyqSK3ouOONJ563NNsoipKpevbgaYXiIZrLwLsa7+5sTABtZtB2m5miNdLwOnHt13633V+gn1xEUv4nIpFg8w3JRtoJHar1YNkB5FvePTbCpdZwiltP5t7WY9fVeCgNLTPzVrjT5+Sr0U6R/mDkfEZ/lePBdNWhT8dsT4q/M= X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1267; 31:m7TCy59qDbq/xAZFyP2VKyowoOit2UahV26D+ZUO9bXrWtHTeHKm1amjB/uMWGNwmr3GnWEjcYt+RV47fAx8ednn+cnlNob6pQdZGBfPMNSlJ5JmILErIXAYv/RQeUR4DrOUcWdLOe4ZbuEaURuT/K/5qbhciXyqSH/AGoJNkM6BGZZlXFhjQgUNW/I6cid9mly/OTtxArYmxJXata5EJVqcHaF8+C+q7Po7aQ2vN6A=; 20:BlSUFvPSNf4sUepOikVrQpgeurM+39QagfF3je9tKkZdrsZoKfacp5iG5JPTk/KaHBwDHWdJ/P2Y8ql8W0ZDY7T5PA1keMt9Nm2VU4I/Df2zC+LxSKvOYpxlNLQydODilrDhtdtOzeJup0i0h0/EKi5Ia6GYgYn32Gy0ItJ8bV1tW/DbJb+uthFlq1rakGYLcKAPzKq8dGC5u+F2etwkBHyqoxHCZhIUSECEQQrH75rS/1Hcisa5nN/Vg/0nsp/cenPCypHRKH3LcD5ofwEeb/3lBrru+2Pgz293hUQIsRsoTJhBNJo0/LRl6eUjdeefXuBVKHEtqAhHR0ijy599DpnThx4T+Dra4wJKfvIksfjHG56NetJro29MFaDuxNdlIg07aTKC4CkKBaC7oxz3Z21Dui+aAxaAPPHVXnM/nR+0a6fGyEwHE5EyZhTMDeahrgfoFVBia2eFOXsLx3MS1h57Yu4RIzopgKQNPOX7e+9FVkpEoOvvHO22xivRirXqmujpOr6MavOxHmFDtgvRcCf/LfCzJR74t61+03SFy6WVJwAcq+N7FHB1+dA5zv8RtuIVVINxiyFEbOufr1WQGzKQ8A7tGjc5H7aR0tkXbdQ= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(100000703101)(100105400095)(93006095)(10201501046)(3002001)(6041248)(20161123558100)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(20161123562025)(20161123564025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BN3PR0701MB1267; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BN3PR0701MB1267; X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1267; 4:8U8HIhum97lgsNTdYVFD78a3sD9dhPEwL7hr+OCug+rqri7FuQwEW6uMHdqqCi3f8C4kbR9TidV945KaPfdfiibm9jTko0ZH0I+35n710/ZUXlVFVM8inlX1LAG9TqKxxSHwgR2LrrNBIFSEL2MyejZN852DbBXNlOKmlpHOTFYOh0bCMFMwF2gI+cem3+aG5X5kWK5z/fZJe8bESQSd1p3LRIZDy1hDA87LCkP9Ps78y+XBh4Z1xFd0OC5/b46ALIVBZ+goTOdFu7lvmxrzjcLv6IQfDbXJRvjU6fhv8IYurH1UjfH7VffPPrfKiWoBasM7+Xg5nEGLmR7pinY6N/LxBk5EHl/vY4l+Cm3OaowpDrNc7VQy6Oj5qu5CK0MZ9mZF7xjoJ4Drx2Q7/RUz107952I/L6dnRNbJ/z1pANBFciPJ49ZeJQqQD1Q7yFwVQCRIfJAVLJKZXpvy2aSLzl9HCcRbLDdTbZmeW3nZ7vHhNFTD92PHVgex3+qoCakTdAUQ8G13fvdWJZzOOtMKX2ilxdgaaqhLmpa0LtgeNfyNr3CAdiPYmlAnplZKpLovSQVb3e3lqeXxY+lYvlPrZo0g0sZUNa7wh6Eey26QT7+72SuQLHWtEd/oAxUclKJ0txWuMbMsPq5ogD7H7xdjQ/XFlJj1+3ccSaViKHo7tq/2UGVBS0zVEkS+flyaKaqlpJ3FYrfqFhDMIT1yw7IzraYDOBuxZIWWhoHxIeiAs2MPnlavDq5zj6djngR1tf7g8mB5ll9tmbbz85rc3FCH43YKJSHf2pxvIS3FLbRb9ufH9cfyKihkOGWaoicseS1DHVT5BkCkv8ucmZmS8ScGug10YDCS/AoPucqD5LGaM7fGa5sMMTRGTBUeB03kAKOqN8X8MsSo08T7xxyAS2f80d1RytZBPtcN5au2cXTunzH7kj3Y8C7/AIwQ9smHYcGT8hAzw5U6eE5sFB2+DBkSt9MiiM+KivGGtHmVrjuwH294lSkg5xKCcXP8PxggLhZdPIo0X3gGSIxX7pT4a2n06xOPdCRwletQKKP1sTBcoQKM4Qnv6ryrn3utGtzOlM1/YU4sYmioffogIe41oi+TFH6Lru0Ljque2omH0+W13Os= X-Forefront-PRVS: 03283976A6 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6069001)(6009001)(39400400002)(39850400002)(39410400002)(2906002)(72206003)(6666003)(189998001)(2950100002)(42882006)(5003940100001)(478600001)(66066001)(6486002)(53936002)(54906002)(50986999)(76176999)(47776003)(38730400002)(6496005)(48376002)(50466002)(5660300001)(7416002)(76506005)(8676002)(81166006)(36756003)(305945005)(42186005)(33646002)(4326008)(50226002)(25786009)(1076002)(6116002)(3846002); DIR:OUT; SFP:1101; SCL:1; SRVR:BN3PR0701MB1267; H:localhost; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1267; 23:eOKN+L3Da5KeyBQw8cuzpoTtsXlcEhIy+PHjRTL3PLUWKXo6HDR5MnABkWsspx2/riitrdCoILtm+T48TjItRKRYm25wo+9w2F4EBFe4QOKp29Vfn0eWo/45BlWGFTuNdLxXy43VL7awyiwn4i0f4gKxIDOeOKT9CRFxVBh4jLkwe2z1IVLf9ZYmOArd5y1Sh2CYRXOHTuVEBg9yeuqRUaQfeJOoIP+8/STnkchoYJrril8WLUmdqz42Opc50of9pi4og2sBHPeDbLiiAdNxepEn9S+g/XdtF8JQZe2ThXCwLOP+KduQPeukEwAf5JXgwq5lIVEvz71M2TUTutRqNV5UoUeVgA0A9UMEJAOr0BGWO011+NSU1X3dI3saftxWzXjvifisBO7H1Mo7nkDSxj+UguV3ZgQEjRdv/Zzl5ySX+vhMSHs0vfQ7E3XaDAdlZeIFTtQZ9Tak7hBUgc2bDe4sC7MW4sPQ2+h+9vgevc5BzsLzREx80rgup9mS6istX/eTYXALry3CU1KZmcM+Z5pwZ8qmztXbnDz+4MKI/vTgTwZbr3AQ+E86SN11IEWICzTfIlMoehscXHSaK0VKk+dB2OTbdSCfhoThr6migQzu8eKCZ+2Tnv06DrZq8Xv+Xf8JxMKE0vR9ZP2zR/nTmmAoC1w6xQVtmbt0xraa6qFZVcBDS3h3tnHsA49TawqZJVKMoF67UAjN2YdvPs7xaqHnPdkhlcjH2RgQnBeCaUfYysWAHJYVpkOwid1zFqji56lc58BmeXLUI7nvwvR46zaFmqNNGpYAjybphGT855wqKX7c3pmAIbT8NBF6kh+o0dyyxYVsTAkChv8+2D/5bCMwlH435/thc3Mzecrkkn/kxDONLsWBHGeGm2thj/mjVIhTaTQsOmcjama5ms2VrlCPfakgYH1ZZinNlOEYaQFWGP5DfZghl+yLXirWFe3Voaj9wQy3LMdpPeVUaw6NKnnHaFHoC5iigjRJkW5CdIHN1unBQ9A1MYorK8gn8YgY X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1267; 6:AkkluWQo3iPKbdnVjcKjp/loSH43BPDd1i5qv6BI4fybTBHAnhsVtQczb2EgDL2BTB9MT3h06izjxPGen+LCJxSweGYB7X0gS1w2X3uY5sb1GdEHTyS41pwcOVOxuBT120g+1pXtlH6ktJgmhBg+g3l1UCnCnSTT2aJgZdTNQYW2bxCvFUlGXasfg3xuNFLhNQcpqtoxVYohrRm54SZvcQPMtObenJTd38KnsJKyWbdS9Af4svJyl5J1wbPj4SEtVj07/XXYkIys+oj9akrwqoNqRhRE9nMSDEN1anKD/HyLN6lzXUyIhsNXo2s31WXge/45F8dvBb6TjiNKNflPdVySTyXb7jGzF2uaBD/8hZgLkjQcrfOs9WAvi9cOe1/XQafn6FF+c0bEegy3RTw12V1hjn40+1Ci9agD0JUVlGazM+r07f59fMkmgUV6j4vyIn0mnzSyNismqnoTYSp8HpP+1+jhQPSOsW7MfERgpZBQ8bncNriP+lZp3kCQqOLhvgpFt5cjvUA6TEJenzopJw== X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1267; 5:M2cS4HJDPuhixJ5uCY4YngsOlEK/So6vmpEjTcQXwdgNYGkR7tJKlLEC+pSG07RpkUtjPn2mIsEWyYQDia/p9OqgLbhvvgz3Rpcb2DM+sEI5S/39gSPKarAxL8atwoiJQPwf+9R6fL6OV9Q2dxUm3oT+gTr5kxnagFvw0E0v9BmasrTX/V3mdtkeJoN0a2HmGScFibpjKbxj1WlA9MsNozDWip0fAbCsIngiutmnkBarwvK4chnsVEfEAix8Qz23XpqqreQ/YsaBnf2e2NXUqzMav718pVZItWDLzZ9cBntnY8bsACibNBNI64qjHyN+Ymi7ytEH3JjxGHr3HXnP/LlR1t7ES/IVygQjF+zs8FXIN6xF6C58FuLOhBZ5TsK1IKTvs2EFFMvanbIj1E55UZyf1OlvA94M0o7E3GMYeq9j5D7R6XwdPZkvn+Ff/vrTYfcxKZnno0yUBNsndGqahTJEO33PaJTNzAYBxTuau3RhobFLM1RNlgUK4WsM3G7U; 24:AVn35akino1+3p3Wt0j8eD5QozAFPTSKxFQd1hwbyTHECCrJGrLzkJGrpfh1x06aXi4pUxaqs2QA1I4z8E2AMidPS4AIfa43O1aszhztwUA= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1267; 7:5wALkDrwThAfPDQXfNmv7iZ+PDyTg5l8nY8Qu6GIFMGRHGipRklWQsXKw9UHj91cTRsN6Xgl5XIeR/0AlHNP8/svjfIul19lupnJ/oZSm/8BoW+dQxVPouN5/6KQeOVyandm4bsjt5AHpWiOMghQ9PT0xoodnG69zl7WCHR4r7s6AJFMP5KUgYpyGsRLbwoL4vwUXbcMHnQ7N19NArormLV1PLm+7cO6hRHKlYww5EBvgYQtx7PCxaKwj/Eb5CCra2EAqZtmmhG1nhWkE/TTktvDmzeYWvD7wtCIylF/BsTHvBlZqfSefCmXAVCPOL1P5Fl+EkzK12UgeAaDoBsDKg== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jun 2017 12:02:00.8862 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR0701MB1267 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org They may be accessed from low-level code, so isolating is a measure to avoid circular dependencies in header files. The exact reason for circular dependency is WARN_ON() macro added in patch edd63a27 "set_restore_sigmask() is never called without SIGPENDING (and never should be)" Signed-off-by: Yury Norov --- include/linux/thread_bits.h | 63 +++++++++++++++++++++++++++++++++++++++++++ include/linux/thread_info.h | 66 +++++++++------------------------------------ 2 files changed, 75 insertions(+), 54 deletions(-) create mode 100644 include/linux/thread_bits.h -- 2.11.0 diff --git a/include/linux/thread_bits.h b/include/linux/thread_bits.h new file mode 100644 index 000000000000..87354331bc7b --- /dev/null +++ b/include/linux/thread_bits.h @@ -0,0 +1,63 @@ +/* thread_bits.h: common low-level thread bits accessors */ + +#ifndef _LINUX_THREAD_BITS_H +#define _LINUX_THREAD_BITS_H + +#ifndef __ASSEMBLY__ + +#include +#include + +#ifdef CONFIG_THREAD_INFO_IN_TASK +/* + * For CONFIG_THREAD_INFO_IN_TASK kernels we need for the + * definition of current, but for !CONFIG_THREAD_INFO_IN_TASK kernels, + * including can cause a circular dependency on some platforms. + */ +#include +#define current_thread_info() ((struct thread_info *)current) +#endif + +/* + * flag set/clear/test wrappers + * - pass TIF_xxxx constants to these functions + */ + +static inline void set_ti_thread_flag(struct thread_info *ti, int flag) +{ + set_bit(flag, (unsigned long *)&ti->flags); +} + +static inline void clear_ti_thread_flag(struct thread_info *ti, int flag) +{ + clear_bit(flag, (unsigned long *)&ti->flags); +} + +static inline int test_and_set_ti_thread_flag(struct thread_info *ti, int flag) +{ + return test_and_set_bit(flag, (unsigned long *)&ti->flags); +} + +static inline int test_and_clear_ti_thread_flag(struct thread_info *ti, int flag) +{ + return test_and_clear_bit(flag, (unsigned long *)&ti->flags); +} + +static inline int test_ti_thread_flag(struct thread_info *ti, int flag) +{ + return test_bit(flag, (unsigned long *)&ti->flags); +} + +#define set_thread_flag(flag) \ + set_ti_thread_flag(current_thread_info(), flag) +#define clear_thread_flag(flag) \ + clear_ti_thread_flag(current_thread_info(), flag) +#define test_and_set_thread_flag(flag) \ + test_and_set_ti_thread_flag(current_thread_info(), flag) +#define test_and_clear_thread_flag(flag) \ + test_and_clear_ti_thread_flag(current_thread_info(), flag) +#define test_thread_flag(flag) \ + test_ti_thread_flag(current_thread_info(), flag) + +#endif /* !__ASSEMBLY__ */ +#endif /* _LINUX_THREAD_BITS_H */ diff --git a/include/linux/thread_info.h b/include/linux/thread_info.h index d7d3ea637dd0..2467f350d659 100644 --- a/include/linux/thread_info.h +++ b/include/linux/thread_info.h @@ -7,9 +7,21 @@ #ifndef _LINUX_THREAD_INFO_H #define _LINUX_THREAD_INFO_H +/* + * For per-arch arch_within_stack_frames() implementations, defined in + * asm/thread_info.h. + */ +enum { + BAD_STACK = -1, + NOT_STACK = 0, + GOOD_FRAME, + GOOD_STACK, +}; + #include #include #include +#include #ifdef CONFIG_THREAD_INFO_IN_TASK /* @@ -21,19 +33,6 @@ #define current_thread_info() ((struct thread_info *)current) #endif -#include - -/* - * For per-arch arch_within_stack_frames() implementations, defined in - * asm/thread_info.h. - */ -enum { - BAD_STACK = -1, - NOT_STACK = 0, - GOOD_FRAME, - GOOD_STACK, -}; - #include #ifdef __KERNEL__ @@ -45,47 +44,6 @@ enum { # define THREADINFO_GFP (GFP_KERNEL_ACCOUNT | __GFP_NOTRACK) #endif -/* - * flag set/clear/test wrappers - * - pass TIF_xxxx constants to these functions - */ - -static inline void set_ti_thread_flag(struct thread_info *ti, int flag) -{ - set_bit(flag, (unsigned long *)&ti->flags); -} - -static inline void clear_ti_thread_flag(struct thread_info *ti, int flag) -{ - clear_bit(flag, (unsigned long *)&ti->flags); -} - -static inline int test_and_set_ti_thread_flag(struct thread_info *ti, int flag) -{ - return test_and_set_bit(flag, (unsigned long *)&ti->flags); -} - -static inline int test_and_clear_ti_thread_flag(struct thread_info *ti, int flag) -{ - return test_and_clear_bit(flag, (unsigned long *)&ti->flags); -} - -static inline int test_ti_thread_flag(struct thread_info *ti, int flag) -{ - return test_bit(flag, (unsigned long *)&ti->flags); -} - -#define set_thread_flag(flag) \ - set_ti_thread_flag(current_thread_info(), flag) -#define clear_thread_flag(flag) \ - clear_ti_thread_flag(current_thread_info(), flag) -#define test_and_set_thread_flag(flag) \ - test_and_set_ti_thread_flag(current_thread_info(), flag) -#define test_and_clear_thread_flag(flag) \ - test_and_clear_ti_thread_flag(current_thread_info(), flag) -#define test_thread_flag(flag) \ - test_ti_thread_flag(current_thread_info(), flag) - #define tif_need_resched() test_thread_flag(TIF_NEED_RESCHED) #ifndef CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES From patchwork Sun Jun 4 11:59:58 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yury Norov X-Patchwork-Id: 101360 Delivered-To: patch@linaro.org Received: by 10.140.91.77 with SMTP id y71csp494866qgd; Sun, 4 Jun 2017 05:02:54 -0700 (PDT) X-Received: by 10.99.47.69 with SMTP id v66mr15724104pgv.47.1496577773951; Sun, 04 Jun 2017 05:02:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1496577773; cv=none; d=google.com; s=arc-20160816; b=n3HgRN070fGd/5w2WJdP3aXa+CcMmlXfHf85I5f9e80v+bb2q1wHW7xX72FROjzjO/ c6Jrsg67ESUIUmqaeHklURYYVLWAsAX99kZxpe6HGXSMp9G97Z0TeIRAEo2XLBzf9zm9 eeHrDKBwjE+VZ3EgV46+DiuFwv8nTOOyHPUGulSiFaQQ4yde4vKFry9OhsFTi9Z5Lc6h hyrB4+TUlx/Q3JsxSaUZKM6qIhJ0m0YgCDU0cmmi9LRgjArfOklm2mm4WydaijRyDeJ6 DFC4nAkw+q/mDrGfL/KYU+rAluTpkvqITMBxm3TrtQw71dDMewr8p44vZTXqBmm3IqRw AKdw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:spamdiagnosticmetadata :spamdiagnosticoutput:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature:arc-authentication-results; bh=HpdPkC1j245JgvgKOwNwIO3p0hWTpV/yMe5nolgETbc=; b=Pe+JBhexYMGHYTBEA9l2OyqlpON9cHICZYK453IR8ECql2dd1MtfR4aKXtuj3du4Xg e0erJV/pSm3ZAlMYHxRQ3z9NG/t84FEhKNCcuKuT0whbTS+bTX9lMorBg0/+HdTQA2aL c8g93+MwErRx/3n5VqWyGx+i0ySBD0p3aYlqWj+Masfb3NvyLimRlit2EICnRrp4ABRy M2p1GPvEu4invUijnnsDHtzMjM+As6ifQJArxZvvHJJeBwZNK9tAB2pJzBr87dZ9Iu1T 0XPtiYGxj68Rrxhf/TrMTGcBt4OF1zzRQZnAloiyPM4fUDXlOvZ9UkyG5eOE+B5r9etv jeWg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@CAVIUMNETWORKS.onmicrosoft.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id r6si4542326plj.223.2017.06.04.05.02.53; Sun, 04 Jun 2017 05:02:53 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@CAVIUMNETWORKS.onmicrosoft.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751374AbdFDMCt (ORCPT + 25 others); Sun, 4 Jun 2017 08:02:49 -0400 Received: from mail-co1nam03on0078.outbound.protection.outlook.com ([104.47.40.78]:18144 "EHLO NAM03-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751182AbdFDMCR (ORCPT ); Sun, 4 Jun 2017 08:02:17 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=HpdPkC1j245JgvgKOwNwIO3p0hWTpV/yMe5nolgETbc=; b=XpfuJ0yrTqZRB6JGqxzNrxngTf4ejXcD/alftcKWRcZ6/nEy91QlhVHfUpMYob4TUjo5+NtobRF9uzmlmpJHb0xmi1EnZfXEZ4dLPniah5colbJaJLQGRyzx5QI2l3TQU1/xwcZgA2XcLOXuEwYC5BQ4bTA2Rl/3JFSganwkdnY= Authentication-Results: arm.com; dkim=none (message not signed) header.d=none; arm.com; dmarc=none action=none header.from=caviumnetworks.com; Received: from localhost (176.59.55.28) by BN3PR0701MB1266.namprd07.prod.outlook.com (10.160.118.140) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1143.10; Sun, 4 Jun 2017 12:02:07 +0000 From: Yury Norov To: Catalin Marinas , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, Arnd Bergmann Cc: Yury Norov , Andrew Pinski , Andrew Pinski , Adam Borowski , Chris Metcalf , Steve Ellcey , Maxim Kuvyrkov , Ramana Radhakrishnan , Florian Weimer , Bamvor Zhangjian , Andreas Schwab , Chris Metcalf , Heiko Carstens , schwidefsky@de.ibm.com, broonie@kernel.org, Joseph Myers , christoph.muellner@theobroma-systems.com, szabolcs.nagy@arm.com, klimov.linux@gmail.com, Nathan_Lynch@mentor.com, agraf@suse.de, Prasun.Kapoor@caviumnetworks.com, geert@linux-m68k.org, philipp.tomsich@theobroma-systems.com, manuel.montezelo@gmail.com, linyongting@huawei.com, davem@davemloft.net, zhouchengming1@huawei.com, Bamvor Jian Zhang Subject: [PATCH 09/20] arm64: introduce is_a32_task and is_a32_thread (for AArch32 compat) Date: Sun, 4 Jun 2017 14:59:58 +0300 Message-Id: <20170604120009.342-10-ynorov@caviumnetworks.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170604120009.342-1-ynorov@caviumnetworks.com> References: <20170604120009.342-1-ynorov@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [176.59.55.28] X-ClientProxiedBy: HE1PR09CA0069.eurprd09.prod.outlook.com (10.174.50.141) To BN3PR0701MB1266.namprd07.prod.outlook.com (10.160.118.140) X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN3PR0701MB1266: X-MS-Office365-Filtering-Correlation-Id: 3728bab3-34dd-47c7-2565-08d4ab418623 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131423075)(201703031133081); SRVR:BN3PR0701MB1266; X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1266; 3:yZTCPFT927m1gBDwrSqpdEgguJCjygMd9d1MWvVoHKN/xiEs7Ju8AzHzNA5WD4w7OBqDeCFAm9FWOOv1klBwm4gQwR1TbpX4NiYQ98FQhjKkQSDMKtRrScnuz3OeI0FuBkkfVab5p+y2+hnIWH1LEHBNXjUwiGaB4Q+/WkhABzkb1X3Yf5KCERuUBYBksif00BHWqsZY2/E8V2IyOlVMZ5FNsuClAxUfDCwOTK4TSvgrW3f8ThDffLc8F1/bDdJ6HFERM6X7hX+15CmkcRhJnS5VAf9cmTGh6hj3wJ310OR0bI6kl/TVhPq/E4gdudsz2uFUNVVNhNhIJ/Alw48fWQ==; 25:lHRfCbFAOql8r7jkg/LC4bRhC80KTzJIpTqJf7MHDhIAPA14R8Fb9g5RTyFmytT9ECplnQjTC57nJeqUe64Au+mDEqNz3BM5KvNla5ZCj5lrRRPBU5mWgFrBYssYR7pgqDcVSFg+TYLgRrodGAOxv41w99I4jfwFlxDD1AD67WyD5q26k2O3bpoqw/o1Z21WV81g9xTB3TDOC0xBf62LkMMpFMmqn4ODMKmUpVAv7k/vl4MsxVR+u2ok0Q5N/5R83adOTKsXzShgmzrqeL1TxW6NbXczuA7/N9lHY4iYp3VIa33Se6+iKPgcEIaJ8JnlL3sLfpA7E7d3u1J2oxBZDSPOQZzIj5qmlTDUctKJ1pkyJmzuo//KfQPYsbEV/UWQOvz5iJI0Wd7boIcETOnFmqhWF/QkKpDNvdU1WNBt64NrXhfSWhNyUVEpyVFR7mj/sZUuYvgWxxcj9en23ykd5z1eCCVvBE7uiDtVmoCLURw= X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1266; 31:QZtOlge2wmii+OXmFE685dooFq087wXMN9cH2Y4iNWeIzCimQ3ZpSGE/m45UvxiGXxPjo1bpvgWYKkuJGtJv35sS4hOOykwPVIEYU+8RZkUxwtblAxz35z4lNqp/SINFVyiQsPZnr+USS++isaf2BZJ8UhLxVS/Wjc2viW7af3jTTOpP6TvICmEuP9f35SBLXGeKxHTJbr9J1MUeA5BE+3611lIq/xmTO7BSKZC+Oxs=; 20:aXLx0oiorovpDz1HV4HnTBjtbLt4MMjDPynAIDGPv8728fmeUuzzbjJRiEoNNVG8VyJ/6Q9b4wpqnwCaVNCewsVz+1dzerHvYM39dfuT6ok7Ot3lUXk0NEBSzw9fbROjDo8nvBVvrhkBOyBTHTB7iA/bZ+fU7oGwZzhLfdzaj56J3kfkqx0e7pmvelFKwMGQG3uSkO5oEdwFOno9yZQloujS/JeCcvJfHDmeXcsfjlqQuH9DqL4GnMDCnuxiyDomNXA1YriW0f17DDDgan63TIly2I+n2UOmldfobcp1jdyjGDm8rmQhiQ3TZmpyaYSyh3pWW/cpO+HvNum7e9guYSNKYqui/NBMS3rpIbF177WpNK3GafPcN7TqlCqC7483oUHnv7gy6OOPBXWz7oNph1YwsK6N3qAqVGO9+refIHUgyL/Hmjw6/f58HnBupyEgeo90LqMMqmJ5uwHnx3i7/matT3hxZCSsQTlZUQwnVPAYqY9JyBFRUCyQpH9GhM+YBdAMvUu1oyZpYJCWmCByG8kAarLvqZ2bqySr9FI0XSMq5WLnU45atU19kgZLdmYfDV7wYXqKetu77pYzmpL/jceoRSW9q7AJq0tWWBmPMHQ= 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)(3002001)(10201501046)(93006095)(6041248)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123555025)(20161123560025)(20161123564025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BN3PR0701MB1266; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BN3PR0701MB1266; X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1266; 4:N5bcrF3oHDcB6vgmHAWjBVme9kOJN6fPSrtCbKzkEcBDVFssi0OapKK2RVI8JsRzvPk7vd5wWL8Pu8jZFJ4TNA1WMtZi+H2Qc/DH88W+X0an6H4NhBa2A5EbHBeYRWy8CvsTLv2g1KdGiUmsuwK+e4silbmFE2iQA5hPnQKDQDDEqdCjSnQm22m8VnMFnWQIhGGbn1Y7hJ/PWyv0g074F7gPZ5fShfrkh2JFNsqqvvGWjX2gGUmi4FpP4VE9N2ZMMvZC1iAs3PqA3lRypLVXMlnOrLQEtbJ40ijrJbzmocYYDlTJ+9m2IW4Yqw99C5D1yxHn8ND6S6QfBJ8UyDaU5s6qA+vn2ls2CE4r95qLZLz1jWKi55M64eOiyLkujsWHrls3u199MwCrXT4+pRW3r2gpbc+1RCiVOEeW5STBLUoeZM0h5pZA2vSA1NkcA1Un7aNdt4bdVpEpgexE1pi8lbkXiXohuLdTeBQ+XU7MQxr5i4pesSJmvbaXm2o0+kikdqGnbmp7kpd1ND2Wde+1/EbZ0lzqbRy0wibdoQkq0wOL22Rt3Cm5fl5TNmTZyGr1JzHE0OpmGkwhf0T5KRP4T8a66zDGcnspBRaN5AEChHExbeArSqOyzlm8YjS+oyuJoAL8VDkN7oOjqSnSZgLr3/FVN9IkHxutMor9DvkeZoMn0OaosbCLAazpu969nsCX2kyuM3UramgTVM7LOFFb3Bgv5VPI4zGIWkIZoOaATiaYCoTEMKV27uCKIk7MNuVpMHvQZ2aLBEh/905CDpKCyOe6UvD8SbNQ4pJcf+5onCql6P3SZ3LOji3PLCIevU+12Nt3G4eMuT+4sTxminSDOE71dl89bLtXpDZ+W7Uqb5G1QSe+udo/dJ/so38Jd6THzjphD7m0MJVRWDKgmwagI62YY56dTpCZTF5gmPWZPgPobgLQuha3eJThgqx0eySV/n40R2189xn7yhHb92sr5Webh/j8aBkjMfSdDTK7pwi2le7KYKKNeTM85HhkRfbfWCGdMdt/A/Z6jfLgcUyjsUS63pLM6ng206SrjjNXyQrXLUJXfefnnD7dQThrB/TlMCAbb4eB9IW+tk0CdVNlaZJ/yMQIQQzfNx7jazYpmiYqBpzCkU7NcGgIi3w9NlcR3z/jnoqJTL0zy6jbI8kpnXcTRhyBM5SmgQ9DnEqaSS5IESmdhPCIlXYffcnK/YG+ X-Forefront-PRVS: 03283976A6 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6069001)(6009001)(39850400002)(39400400002)(39410400002)(1076002)(7416002)(50986999)(76176999)(72206003)(2906002)(305945005)(189998001)(478600001)(47776003)(5003940100001)(5660300001)(6666003)(6496005)(2950100002)(42882006)(7406005)(42186005)(53936002)(6486002)(38730400002)(33646002)(6306002)(54906002)(76506005)(48376002)(4326008)(8676002)(25786009)(81166006)(36756003)(50466002)(66066001)(6116002)(3846002)(50226002); DIR:OUT; SFP:1101; SCL:1; SRVR:BN3PR0701MB1266; H:localhost; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1266; 23:7EDcTOMpzmWMX3DeOmwsMrKp5hRe5bmMaYROFvD9dgqHWyA7V2okQsocNSNe4Hw+7WckQPM9l5lEzSpWSnSHcp1hOlSHZwTdZPHlWk0e8ZTIp8wJyBcejmwwSkap465RZZPYH9Eig3yHVBTGKELbL7/ojgEyIl7M78A2xcRJ8FbwWbdu6i/rIyKgtn2eieRTaZtEbBkSuQMRF/qImvArYwxT6UXWHIt3J+fF9eb8W7th9J7dxzQe9eth2WBVg81k5rjsN9Z/ynyBvpz6LmC/islVy6S3eyE5u5SiFvwL6LpVaasdkcZiJi7UR+iFD00U/je2FUZKLDkQ6ODD8AExcK9xM55ex4UefFf3x7XJ0kjr+56PGJe38VphYZTp+fTFWyuS5iLyJw6jRKD41oaL7jxzvk3CIk5MgCJcs2UI9ehkE6UV6SupDA9I2Xpjw1GSB49BvRcW7F9w4vLMq8uogMCdnbIst5dmnUfzr2WeQwONjY6VCFJVv9NaPCDHXom/pyPJjwnnomhde3PkAWj0WG6YuVgncUSUmG6M3yD9K0vDQrcllZRWYx1bH2d56pP38GdP7NJMkLCzbzuAEXYjpo9GptayQB1wxVrUkgGBHq7Se5kr/J/hWUCVG4SAKgDbFasVF6cINuCyj8a7Xh5eKfn6xnd7xT0B118zBr+ERgeNZhFaBYBx6JH7qsNli0C5UG1SbUmcIspyEksCNRLkX1PDFu+A02qD3yQygEZ8e3DTMD7M9H1S2HMVPd1Kl3t1QkVC/wI3OosKROTNgkgigupe8Ke7xqh8NprN0Nv4+GHEOUcz7IXXWTP4aLWOoovtKovjsDazOLtXSbkRX21K0LouVbT5LIs5E0z77QTIiBzsbxXX+0U/0MzF7NQgUUioevSt9JQ+73/SSP7dhAHu/2rBr4dI/jVMbU2bGIldntbcjTbzy30krddjhuHRzyMEw7ivvV3Oqf/Lyeq7QTY+ByLxIvnYMT//sq4BYvkEDrlmAv5Qn6KtzDAqR9LecRAkMY3sCvQHmTINWJDUf/PiAKac18JxU++0dRoMt684VVk= X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1266; 6:53KfPRbIFBQJxfSw0w8R8BSpgf1o61wqnsvLzQmkpWl+lTCK26E461Zj6FgmWQss/gTNV0jlRSRjzgRWc3UHg5THoLO8mqHWIgbawOWtWMmz2YlQk1GMXAo262mMDSVcDCyClahu5EROhVHA9M67YlYaIEDSW8i4pYLwatnCFM5+KX0LAlkd3YViZXGYopbWo90NuKMTW9bQHPifwc1QXDfDnl8egpm1sJcWqF9Cy8MYnNip/4AbeiG+I8q9LQ4sluwxjfT0RQDzQCtSFgOYZoKiNN665W61Rvfl49Od01xfhLJcbMMOuscyQSz0QB9FhaiJG/e4NIZqjZE1Yfr5BJ3+bMG/gazIHGptuEuqkIi0XjkA7K/Hh9/xfHPGzkPP+Hv61uwd/XE4nQDtswPZXk5UuewcOJLc51oasix3dx96RNir7QKkRaY7B5utp2OGZGqM2CsuYaUOGfnW09/OrtXS4/4Sz1ctXAJDHfB331S7j6feNUoLcdqFRgjrKJREriXAacAz6RKvhn+oSU7Wrw== X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1266; 5:6YTFEWEgjfdeZ5DNNYcVii5jeNhTIqt4JQBBQWx0BlJJudeAIxti0cDYLZXUHk1Zel2S6rlrahxJILM4qSjWz7K+om+2YQfEQx0ChEkhZzW4bTWSrkLvZp3i8+6i78mI+yw0rRWgToyGN0BlP9mmUEZjTLSYUl7F+wnoj2dst8HKo2G6jJGwiTQFv3cCddBiH6/+zyn299KwWlWOP5QuB0ers3lg5L4syN6QWeD4d0sAXplBOjN67+I6mH6KBqgP/EVYZw/auO0/uWtG+vZrPfPDRrxdYxxIPWc88JvFCCtDxytcHCFSWqkCZQgKAsXXxQN3uMFV8xqIYC5xP/srK6zXy8if3MmcnWWxk8cY8rbQdec2QsGQM0DV8dO/lvZjklQWWSVUMtKbhUTOnFFbwmTxcQ7OXf1ciBnOZPanxLv3t9ibshFSg2A5zIXbaagg5cWFuyT7AtMAXQzqO118DwZCvPARThC1DJnxwBpKZy1g1R7aLHNYGPZh+YX+hkRK; 24:BhKStedLCBcKeOWa1YKQdmlmriy566i8sVSAObteyLSUPPQDrLNxnFTLncKz+3ACmfSI2sC7XhXbHXTI7qcr9tUNZb5+PUq7zVZi2vqLNbA= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1266; 7:9os6Bb6mGD+Wnwm3sb+FzdM/sLXEI6AtJo6pyBhQozyM1fOz3NJM98SKBGM1dMqMBzC6QM4sk3ll0Mz8aDFFHtIyNJnWLe8nFDt8wrEhuY2mg60ZTy0NXbrUGoC64HUbkitfN3IHGsjqjwKzHAQ216qm66Edf1xQqp+9mRE6qwbN5DZHk5FId3OMvyoHYu0FNtKGvKvmrk9XtfU1KcNQIr525Oj4JpYvDNEWoWjhe9SgmctIliTskBFyBUrG2C4Yuog8jE0RMHoDJBidU0Yla61IWRHIAv0syLoIVhcI8eP5xUuODFcsNJDYONTTM6Q7c0iU+kviclXkwh2v09zgOw== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jun 2017 12:02:07.3225 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR0701MB1266 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Based on patch of Andrew Pinski. This patch introduces is_a32_compat_task and is_a32_thread so it is easier to say this is a a32 specific thread or a generic compat thread/task. Corresponding functions are located in to avoid mess in headers. Some files include both and , and this is wrong because has already included. It was fixed too. Signed-off-by: Yury Norov Signed-off-by: Andrew Pinski Signed-off-by: Bamvor Jian Zhang --- arch/arm64/include/asm/compat.h | 19 ++--------- arch/arm64/include/asm/elf.h | 10 +++--- arch/arm64/include/asm/ftrace.h | 2 +- arch/arm64/include/asm/is_compat.h | 64 ++++++++++++++++++++++++++++++++++++ arch/arm64/include/asm/memory.h | 5 +-- arch/arm64/include/asm/processor.h | 5 +-- arch/arm64/include/asm/syscall.h | 2 +- arch/arm64/include/asm/thread_info.h | 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 | 11 +++---- arch/arm64/kernel/signal.c | 4 +-- arch/arm64/kernel/traps.c | 3 +- 14 files changed, 97 insertions(+), 47 deletions(-) create mode 100644 arch/arm64/include/asm/is_compat.h -- 2.11.0 diff --git a/arch/arm64/include/asm/compat.h b/arch/arm64/include/asm/compat.h index e39d487bf724..463533b1ae32 100644 --- a/arch/arm64/include/asm/compat.h +++ b/arch/arm64/include/asm/compat.h @@ -25,6 +25,8 @@ #include #include +#include + #define COMPAT_USER_HZ 100 #ifdef __AARCH64EB__ #define COMPAT_UTS_MACHINE "armv8b\0\0" @@ -299,23 +301,6 @@ struct compat_shmid64_ds { compat_ulong_t __unused5; }; -static inline int is_compat_task(void) -{ - return test_thread_flag(TIF_32BIT); -} - -static inline int is_compat_thread(struct thread_info *thread) -{ - return test_ti_thread_flag(thread, TIF_32BIT); -} - -#else /* !CONFIG_COMPAT */ - -static inline int is_compat_thread(struct thread_info *thread) -{ - return 0; -} - #endif /* CONFIG_COMPAT */ #endif /* __KERNEL__ */ #endif /* __ASM_COMPAT_H */ diff --git a/arch/arm64/include/asm/elf.h b/arch/arm64/include/asm/elf.h index ac3fb7441510..6a37b6facc69 100644 --- a/arch/arm64/include/asm/elf.h +++ b/arch/arm64/include/asm/elf.h @@ -16,6 +16,10 @@ #ifndef __ASM_ELF_H #define __ASM_ELF_H +#ifndef __ASSEMBLY__ +#include +#endif + #include /* @@ -158,13 +162,9 @@ extern int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp); /* 1GB of VA */ -#ifdef CONFIG_COMPAT -#define STACK_RND_MASK (test_thread_flag(TIF_32BIT) ? \ +#define STACK_RND_MASK (is_compat_task() ? \ 0x7ff >> (PAGE_SHIFT - 12) : \ 0x3ffff >> (PAGE_SHIFT - 12)) -#else -#define STACK_RND_MASK (0x3ffff >> (PAGE_SHIFT - 12)) -#endif #ifdef __AARCH64EB__ #define COMPAT_ELF_PLATFORM ("v8b") diff --git a/arch/arm64/include/asm/ftrace.h b/arch/arm64/include/asm/ftrace.h index caa955f10e19..0feb28ad10dd 100644 --- a/arch/arm64/include/asm/ftrace.h +++ b/arch/arm64/include/asm/ftrace.h @@ -54,7 +54,7 @@ static inline unsigned long ftrace_call_adjust(unsigned long addr) #define ARCH_TRACE_IGNORE_COMPAT_SYSCALLS static inline bool arch_trace_is_compat_syscall(struct pt_regs *regs) { - return is_compat_task(); + return is_a32_compat_task(); } #endif /* ifndef __ASSEMBLY__ */ diff --git a/arch/arm64/include/asm/is_compat.h b/arch/arm64/include/asm/is_compat.h new file mode 100644 index 000000000000..8dba5caaf5d1 --- /dev/null +++ b/arch/arm64/include/asm/is_compat.h @@ -0,0 +1,64 @@ +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef __ASM_IS_COMPAT_H +#define __ASM_IS_COMPAT_H +#ifndef __ASSEMBLY__ + +#include + +#ifdef CONFIG_AARCH32_EL0 + +static inline int is_a32_compat_task(void) +{ + return test_thread_flag(TIF_32BIT); +} + +static inline int is_a32_compat_thread(struct thread_info *thread) +{ + return test_ti_thread_flag(thread, TIF_32BIT); +} + +#else + +static inline int is_a32_compat_task(void) + +{ + return 0; +} + +static inline int is_a32_compat_thread(struct thread_info *thread) +{ + return 0; +} + +#endif /* CONFIG_AARCH32_EL0 */ + +#ifdef CONFIG_COMPAT + +static inline int is_compat_task(void) +{ + return is_a32_compat_task(); +} + +#endif /* CONFIG_COMPAT */ + +static inline int is_compat_thread(struct thread_info *thread) +{ + return is_a32_compat_thread(thread); +} + + +#endif /* !__ASSEMBLY__ */ +#endif /* __ASM_IS_COMPAT_H */ diff --git a/arch/arm64/include/asm/memory.h b/arch/arm64/include/asm/memory.h index 32f82723338a..9b1835ca808f 100644 --- a/arch/arm64/include/asm/memory.h +++ b/arch/arm64/include/asm/memory.h @@ -26,6 +26,7 @@ #include #include #include +#include /* * Allow for constants defined here to be used from assembly code @@ -78,9 +79,9 @@ #ifdef CONFIG_COMPAT #define TASK_SIZE_32 UL(0x100000000) -#define TASK_SIZE (test_thread_flag(TIF_32BIT) ? \ +#define TASK_SIZE (is_compat_task() ? \ TASK_SIZE_32 : TASK_SIZE_64) -#define TASK_SIZE_OF(tsk) (test_tsk_thread_flag(tsk, TIF_32BIT) ? \ +#define TASK_SIZE_OF(tsk) (is_compat_thread(tsk) ? \ TASK_SIZE_32 : TASK_SIZE_64) #else #define TASK_SIZE TASK_SIZE_64 diff --git a/arch/arm64/include/asm/processor.h b/arch/arm64/include/asm/processor.h index 2bbbd33549c0..0136a1af677d 100644 --- a/arch/arm64/include/asm/processor.h +++ b/arch/arm64/include/asm/processor.h @@ -30,6 +30,7 @@ #include #include +#include #include #include #include @@ -40,7 +41,7 @@ #define STACK_TOP_MAX TASK_SIZE_64 #ifdef CONFIG_COMPAT #define AARCH32_VECTORS_BASE 0xffff0000 -#define STACK_TOP (test_thread_flag(TIF_32BIT) ? \ +#define STACK_TOP (is_compat_task() ? \ AARCH32_VECTORS_BASE : STACK_TOP_MAX) #else #define STACK_TOP STACK_TOP_MAX @@ -94,7 +95,7 @@ struct thread_struct { #define task_user_tls(t) \ ({ \ unsigned long *__tls; \ - if (is_compat_thread(task_thread_info(t))) \ + if (is_a32_compat_thread(task_thread_info(t))) \ __tls = &(t)->thread.tp2_value; \ else \ __tls = &(t)->thread.tp_value; \ diff --git a/arch/arm64/include/asm/syscall.h b/arch/arm64/include/asm/syscall.h index 709a574468f0..ce09641f888d 100644 --- a/arch/arm64/include/asm/syscall.h +++ b/arch/arm64/include/asm/syscall.h @@ -113,7 +113,7 @@ static inline void syscall_set_arguments(struct task_struct *task, */ static inline int syscall_get_arch(void) { - if (is_compat_task()) + if (is_a32_compat_task()) return AUDIT_ARCH_ARM; return AUDIT_ARCH_AARCH64; diff --git a/arch/arm64/include/asm/thread_info.h b/arch/arm64/include/asm/thread_info.h index 46c3b93cf865..a7ffea24d94d 100644 --- a/arch/arm64/include/asm/thread_info.h +++ b/arch/arm64/include/asm/thread_info.h @@ -95,7 +95,7 @@ struct thread_info { #define TIF_FREEZE 19 #define TIF_RESTORE_SIGMASK 20 #define TIF_SINGLESTEP 21 -#define TIF_32BIT 22 /* 32bit process */ +#define TIF_32BIT 22 /* AARCH32 process */ #define _TIF_SIGPENDING (1 << TIF_SIGPENDING) #define _TIF_NEED_RESCHED (1 << TIF_NEED_RESCHED) diff --git a/arch/arm64/kernel/hw_breakpoint.c b/arch/arm64/kernel/hw_breakpoint.c index 749f81779420..49b9a29915c0 100644 --- a/arch/arm64/kernel/hw_breakpoint.c +++ b/arch/arm64/kernel/hw_breakpoint.c @@ -169,7 +169,7 @@ enum hw_breakpoint_ops { HW_BREAKPOINT_RESTORE }; -static int is_compat_bp(struct perf_event *bp) +static int is_a32_compat_bp(struct perf_event *bp) { struct task_struct *tsk = bp->hw.target; @@ -180,7 +180,7 @@ static int is_compat_bp(struct perf_event *bp) * deprecated behaviour if we use unaligned watchpoints in * AArch64 state. */ - return tsk && is_compat_thread(task_thread_info(tsk)); + return tsk && is_a32_compat_thread(task_thread_info(tsk)); } /** @@ -480,7 +480,7 @@ static int arch_build_bp_info(struct perf_event *bp) * Watchpoints can be of length 1, 2, 4 or 8 bytes. */ if (info->ctrl.type == ARM_BREAKPOINT_EXECUTE) { - if (is_compat_bp(bp)) { + if (is_a32_compat_bp(bp)) { if (info->ctrl.len != ARM_BREAKPOINT_LEN_2 && info->ctrl.len != ARM_BREAKPOINT_LEN_4) return -EINVAL; @@ -537,7 +537,7 @@ int arch_validate_hwbkpt_settings(struct perf_event *bp) * AArch32 tasks expect some simple alignment fixups, so emulate * that here. */ - if (is_compat_bp(bp)) { + if (is_a32_compat_bp(bp)) { if (info->ctrl.len == ARM_BREAKPOINT_LEN_8) alignment_mask = 0x7; else diff --git a/arch/arm64/kernel/perf_regs.c b/arch/arm64/kernel/perf_regs.c index bd1b74c2436f..443e42001108 100644 --- a/arch/arm64/kernel/perf_regs.c +++ b/arch/arm64/kernel/perf_regs.c @@ -46,7 +46,7 @@ int perf_reg_validate(u64 mask) u64 perf_reg_abi(struct task_struct *task) { - if (is_compat_thread(task_thread_info(task))) + if (is_a32_compat_thread(task_thread_info(task))) return PERF_SAMPLE_REGS_ABI_32; else return PERF_SAMPLE_REGS_ABI_64; diff --git a/arch/arm64/kernel/process.c b/arch/arm64/kernel/process.c index af1ea258c212..0fbbe7c96f69 100644 --- a/arch/arm64/kernel/process.c +++ b/arch/arm64/kernel/process.c @@ -51,7 +51,6 @@ #include #include -#include #include #include #include @@ -217,7 +216,7 @@ static void tls_thread_flush(void) { write_sysreg(0, tpidr_el0); - if (is_compat_task()) { + if (is_a32_compat_task()) { current->thread.tp_value = 0; /* @@ -269,7 +268,7 @@ int copy_thread(unsigned long clone_flags, unsigned long stack_start, *task_user_tls(p) = read_sysreg(tpidr_el0); if (stack_start) { - if (is_compat_thread(task_thread_info(p))) + if (is_a32_compat_thread(task_thread_info(p))) childregs->compat_sp = stack_start; else childregs->sp = stack_start; @@ -306,7 +305,7 @@ static void tls_thread_switch(struct task_struct *next) *task_user_tls(current) = tpidr; tpidr = *task_user_tls(next); - tpidrro = is_compat_thread(task_thread_info(next)) ? + tpidrro = is_a32_compat_thread(task_thread_info(next)) ? next->thread.tp_value : 0; write_sysreg(tpidr, tpidr_el0); diff --git a/arch/arm64/kernel/ptrace.c b/arch/arm64/kernel/ptrace.c index da908f9a1e05..e2b7c040bf84 100644 --- a/arch/arm64/kernel/ptrace.c +++ b/arch/arm64/kernel/ptrace.c @@ -39,7 +39,6 @@ #include #include -#include #include #include #include @@ -187,7 +186,7 @@ static void ptrace_hbptriggered(struct perf_event *bp, #ifdef CONFIG_AARCH32_EL0 int i; - if (!is_compat_task()) + if (!is_a32_compat_task()) goto send_sig; for (i = 0; i < ARM_MAX_BRP; ++i) { @@ -1312,9 +1311,9 @@ const struct user_regset_view *task_user_regset_view(struct task_struct *task) * 32-bit children use an extended user_aarch32_ptrace_view to allow * access to the TLS register. */ - if (is_compat_task()) + if (is_a32_compat_task()) return &user_aarch32_view; - else if (is_compat_thread(task_thread_info(task))) + else if (is_a32_compat_thread(task_thread_info(task))) return &user_aarch32_ptrace_view; #endif return &user_aarch64_view; @@ -1341,7 +1340,7 @@ static void tracehook_report_syscall(struct pt_regs *regs, * A scratch register (ip(r12) on AArch32, x7 on AArch64) is * used to denote syscall entry/exit: */ - regno = (is_compat_task() ? 12 : 7); + regno = (is_a32_compat_task() ? 12 : 7); saved_reg = regs->regs[regno]; regs->regs[regno] = dir; @@ -1452,7 +1451,7 @@ int valid_user_regs(struct user_pt_regs *regs, struct task_struct *task) if (!test_tsk_thread_flag(task, TIF_SINGLESTEP)) regs->pstate &= ~DBG_SPSR_SS; - if (is_compat_thread(task_thread_info(task))) + if (is_a32_compat_thread(task_thread_info(task))) return valid_compat_regs(regs); else return valid_native_regs(regs); diff --git a/arch/arm64/kernel/signal.c b/arch/arm64/kernel/signal.c index c7b6de62f9d3..5fa1b401c5d6 100644 --- a/arch/arm64/kernel/signal.c +++ b/arch/arm64/kernel/signal.c @@ -276,7 +276,7 @@ static int setup_rt_frame(int usig, struct ksignal *ksig, sigset_t *set, static void setup_restart_syscall(struct pt_regs *regs) { - if (is_compat_task()) + if (is_a32_compat_task()) compat_setup_restart_syscall(regs); else regs->regs[8] = __NR_restart_syscall; @@ -295,7 +295,7 @@ static void handle_signal(struct ksignal *ksig, struct pt_regs *regs) /* * Set up the stack frame */ - if (is_compat_task()) { + if (is_a32_compat_task()) { if (ksig->ka.sa.sa_flags & SA_SIGINFO) ret = compat_setup_rt_frame(usig, ksig, oldset, regs); else diff --git a/arch/arm64/kernel/traps.c b/arch/arm64/kernel/traps.c index 287a21ee39b3..d1e40129afe0 100644 --- a/arch/arm64/kernel/traps.c +++ b/arch/arm64/kernel/traps.c @@ -18,6 +18,7 @@ */ #include +#include #include #include #include @@ -578,7 +579,7 @@ asmlinkage long do_ni_syscall(struct pt_regs *regs) { #ifdef CONFIG_AARCH32_EL0 long ret; - if (is_compat_task()) { + if (is_a32_compat_task()) { ret = compat_arm_syscall(regs); if (ret != -ENOSYS) return ret; From patchwork Sun Jun 4 11:59:59 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yury Norov X-Patchwork-Id: 101361 Delivered-To: patch@linaro.org Received: by 10.140.91.77 with SMTP id y71csp495016qgd; Sun, 4 Jun 2017 05:03:20 -0700 (PDT) X-Received: by 10.84.232.198 with SMTP id x6mr9586272plm.245.1496577800525; Sun, 04 Jun 2017 05:03:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1496577800; cv=none; d=google.com; s=arc-20160816; b=TGaj9HKg4IuWXM/T+5u2oPdK9P7PQ+eJoB27v4bkN+xCw9yX1F1FQztIZV9rarxutn 1FOuMnauZI3+y8IP51D4CXPwqYtzGcKVLxQnA6LJ1+c4TjbNHGbXRPSkuySlOCqnCD1W qux0aFS2JTrt6Mi+W7QAkPsTM9AuAhwDjnzA7AnHbCCCtlik86ml6EVWEV4x/vGFxk/N 8gfNzrlG7/gPUkcPqJ3gS3ayNYPru5eslMAhXG/fywUYNfH6MwCnIS8rrrmjvKEFqRRz qbKS/AEyzEJNSXeKdGYTp1QttJH17R0WkoMQABDwLdHrPS3KfYF7BMwRRmouZGo4cyXg 6Siw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:spamdiagnosticmetadata :spamdiagnosticoutput:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature:arc-authentication-results; bh=XELQI0+xp2bh9jHZuGu5/+BuLc/kBgK3u2BtG+LkSMM=; b=Arz8quDNE6iH1uOLq1yRRNTltA7K/9flqp7zcIOsXh5E1oSM/youvca9Y1sWck4B5n wNMY9kz8GlXOvi0a/KAnrWIh53nSk+NExiTQpGhqXBO2maqT9/JWVPeXzESOoou/IEml 1zL3SdcZDcM62lw0noB8rFQYpwCisN0sBIpA3N8pkXsSh9fSNUFPWIrWGIKb00BnmUew 9n+md6M9oHzj/IPmvtkU/x90MV9U0eFnDM0WmfMkAW6CtMA9ZPJQF1dMU+jzpi0F/gjR bBvhONwBJ5UmtuE/+TS1v8zSvzJMGo7OJza0OmsIt86kVqvV53p8ZebtXuLmcNwf12/l gucg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@CAVIUMNETWORKS.onmicrosoft.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g25si4620870plj.529.2017.06.04.05.03.20; Sun, 04 Jun 2017 05:03:20 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@CAVIUMNETWORKS.onmicrosoft.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751388AbdFDMDC (ORCPT + 25 others); Sun, 4 Jun 2017 08:03:02 -0400 Received: from mail-bl2nam02on0083.outbound.protection.outlook.com ([104.47.38.83]:39726 "EHLO NAM02-BL2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751356AbdFDMCV (ORCPT ); Sun, 4 Jun 2017 08:02:21 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=XELQI0+xp2bh9jHZuGu5/+BuLc/kBgK3u2BtG+LkSMM=; b=dBN2yKha7LBOVy8vFPXafvuHps56Xa8g88nIWGf1vd2APsIVyeEzuefsm4Wv6Dk4HYsqUI5HCEV2CbWnlbnGOSU1UpOilV9UICwzEbTR7piKat+zRmmiBiztWh6bHd1VdR76qDIonwhA2LbDuwFy0CAZg+fgDF49RNCMsEP/NII= Authentication-Results: arm.com; dkim=none (message not signed) header.d=none; arm.com; dmarc=none action=none header.from=caviumnetworks.com; Received: from localhost (176.59.55.28) by DM2PR0701MB1280.namprd07.prod.outlook.com (2a01:111:e400:5118::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1143.10; Sun, 4 Jun 2017 12:02:15 +0000 From: Yury Norov To: Catalin Marinas , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, Arnd Bergmann Cc: Yury Norov , Andrew Pinski , Andrew Pinski , Adam Borowski , Chris Metcalf , Steve Ellcey , Maxim Kuvyrkov , Ramana Radhakrishnan , Florian Weimer , Bamvor Zhangjian , Andreas Schwab , Chris Metcalf , Heiko Carstens , schwidefsky@de.ibm.com, broonie@kernel.org, Joseph Myers , christoph.muellner@theobroma-systems.com, szabolcs.nagy@arm.com, klimov.linux@gmail.com, Nathan_Lynch@mentor.com, agraf@suse.de, Prasun.Kapoor@caviumnetworks.com, geert@linux-m68k.org, philipp.tomsich@theobroma-systems.com, manuel.montezelo@gmail.com, linyongting@huawei.com, davem@davemloft.net, zhouchengming1@huawei.com Subject: [PATCH 10/20] arm64: ilp32: add is_ilp32_compat_{task, thread} and TIF_32BIT_AARCH64 Date: Sun, 4 Jun 2017 14:59:59 +0300 Message-Id: <20170604120009.342-11-ynorov@caviumnetworks.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170604120009.342-1-ynorov@caviumnetworks.com> References: <20170604120009.342-1-ynorov@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [176.59.55.28] X-ClientProxiedBy: HE1PR09CA0078.eurprd09.prod.outlook.com (2603:10a6:7:3d::22) To DM2PR0701MB1280.namprd07.prod.outlook.com (2a01:111:e400:5118::18) X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM2PR0701MB1280: X-MS-Office365-Filtering-Correlation-Id: 2fccd041-0a5d-432b-0c6b-08d4ab418b1e X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131423075)(201703031133081); SRVR:DM2PR0701MB1280; X-Microsoft-Exchange-Diagnostics: 1; DM2PR0701MB1280; 3:4ty/g/g8tULwE2Jngnfq3Fd+lzBrB5XnSSmSgdqOjHIgrRhOkqfmKGkvfh8yELBtvxTc26vuRwPkEzwdcW8kLETUa8C3CHdTzu66ewG8rPmVX/jjpcGH8UdguYpkaQTMR8SWHPAzvWSZC2jbhvKkcxVn/8uh/ouQh0SEjkAuTX/8voCvGDBNpJdIFJTvo66/N27gXOczQkMgnDpWBn++wQYB1uO9zwyuMX5C38025qWRPcjRuiPFBAyYjtAB8fWp6WL0+csEkvC8luADCCNdtzjk9cJn35DPfJ/4+oymEsIP/p4nZbjrleYEito/l7lUgZkth94ntL97cKNNpZpmYw==; 25:iWAM8J/1Dy8Hy7FePzt/9/FmF9hOkGU1HYOFdKli7FA5BBe8+9ZbKql+tk7cAfIVqCP29NzHjAVwcw+5ykV7YYYvcZeL/Hc6ZxdpRJjJ3xUu86huigRAWDtgWm2ocRFcitbv7Y1wsuS3K5UPHtICPpNEowWkXLgygbzUfgl7i24Vnc56CEY4ffydd0CxCz4XnqekJ9X5cOo9JfxD0A9x+2WEAZzVGFvv7EzTSr+cRtrBdve8wM4L2CECbHBd68DKGPhI426k4DFgokohSKM48GjaWvvngVTaqPnckSbCT126h3gSuABX8q23c6/1yxj0mW/FLrYJy4QgddPnVGZwSDdo/R5AApD/Ln+u0OefIHClv4WbujCdCITK77aoSBhQsYTOUtSFmkVa45DpTH6hDUmQFnzyY7uuGNW4Kj8qpx3CVdQIcQyGCQNyyP84q9k7j7nEqJ5B8fiAARo5Epnn4B4077peVH7nPqXu66QJ9ew= X-Microsoft-Exchange-Diagnostics: 1; DM2PR0701MB1280; 31:vlOFGetOih3N850ZumiHv+TvoRBWUULh95fpy+fGjGY4oOypzh6wsA/tJOft3LWCfFRCBM4EbsxntijaEtL1mO4gSzEWSW8ccd9GFcrTRYKyqjlNFnuOTs4RrlrFfmuOI6URw9z4vXKo7sUCR1erWewUzAwhLt41lHYM3N7dMl/XzvBLWnCW61EA3wVUE3QU3y3cXDnG3A2Ayy6r8mne63zCbkDDEA6CdTgNrbujrIg=; 20:yAXzhDbm7Rbm444kokC3hi+HN5Tg8oyZeVKQIKvsbODTwGha6WX6mXAjBkzQPmOD5klFh6dbvjAjxjXv79wfJQosUV0TiXoeqv/wvggLhZV+66yqHo0G+oT6ZNSYgAUbAfv68Jg/RqHC+Zfl5+EvACNqs5OEQlU95dOAGyZZRvTdli2m2AeYhvhixeBIc2+yby25C00qXFdLVzbDcPreHDF3zc36fK5Li+tI0R5q2gEXTuw9q62fvviK0VIOxBpHGrqia0xYO9ZFSNXMsnotAZ9Z/T9UeoNB4NE6qsluM3nndOawpl0YpKfRldnr4C/Vhzd52uM1SQPbWFHRpkJhFb96NH80CQjVOxzk5/VoU03QjExufKrg/fYslff9jrdrN4sDjuW8JDrIATDT/Ayzotjcl0K/Caxd6TD5f+EitWcHNtdgvi94iBClAicz89lhNwuR1pd+ECb/qFzau86X99W/tuaEWSMRBJuAalkn2/aVGF5tPxLCqQnKnsHeI7V6T0QetzDbGVclg/0PCp3eqxbitYf/SYKJPLMqpn3ybQb0UIhsqRTwAOiDzhLTUUE3xLByLgbZip1uiLtfcLWNzGhMY9NfmJDc98IFqVKGZeY= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(100000703101)(100105400095)(3002001)(10201501046)(93006095)(6041248)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123564025)(20161123555025)(20161123560025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:DM2PR0701MB1280; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DM2PR0701MB1280; X-Microsoft-Exchange-Diagnostics: 1; DM2PR0701MB1280; 4:1eGchK+pKhLyecjihf1wE4aqKLl0k3AlPi/81pHLAccyKzLMKAYvOZ21hxTRQQrZdpqJqAWIm4H3pfyyqjMO/SNG2Mw+5tSFfStlVoS6My5HK8GbyY5Ko+nD4lQ+ODV9V/qNUHqNhUEZXN9tPvk36zdqCR0ga+Rzt1yI5QrrRvRzZ4yGxVwc/7nSC4FNpiaGQILIhtPF73vYeQ1wxb/Ok49Ic4vvup0DOepaZNhHbtDWgpqogYTPELAYzWFe0BC4RVFF3S8LtnIyOG/PJMqAxFohhheC1IiW6HJv8xuh1drr3L1RqvOmuvFLxI8dAA/8R7OehLvKDnpL75JPxBvvb7c2X5dvtJ2HCAj820ckT4LoKOF52InKi5cKNPcdOoSzTWkxRPdyVfPUdS9nO9x5YNYmp+ESGp80mXiuhyE9fjkkS1fvKraVrLfKntwzrFsc3kFOG9rgBnWU5fiI+x4O1eE7e1IQeJ84rI3G9b+Ls9BKLpRzSu8WcCVA6XR0E0cKqMkpDg0TDazBHZAyJ4QTtYjC6Rui+2fggTOphO7GRroOSOzvdYSULIkbhn3a/l4IyGfHoMHPkSmLpK/6fxi1RCitn5q+uye7BGcxbKSvI6p9pENQ+GrzEBo/httjaChTAlPXowY8hwV8dmM52zcvnNVPFfBZ4gtJBUB6We0GwOKWN1pg4b2kywtt9FdKF0L56UYdDgBXtJSbpFcDAnn7P+ykUN3FKLsi101b1XoZvVqXt4tee52G74eOrR5E8c4a/HXlyFwB5HNfV7zgiE4QcW0QMbwW8+xgs2BUrl0EchRKhmtCPul29YBKdoUKIKFxnw+fVJ5H+Jn7z2amFu2OCAMZy2RN7lDmHSla9/JXa6X03NKcxDKW+r3Eom+Am23jsGApjngAQ2yjEV+Brfg9vJkr905jOsVkcyaxdhGOE4UqvtV/h/3+hHbqhT2RrlqUntWYGNAkRKTemJ8xDVUZcGQQDsSi+I1tz4s6q4CEZS1t8z8FeGpe5c3SCvadLKAzYgw0i4oz1Hhslu0pjIwn4tVqCxMqN7Tg8mM2L6XByBiyqqgTKJygrgO4xrnG/rqKUGZkF0Tq/jP/SrI2B4CAJPUG8DWAU8axspspVUQLcNM= X-Forefront-PRVS: 03283976A6 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6069001)(6009001)(39400400002)(39410400002)(6666003)(54906002)(2950100002)(81166006)(47776003)(42882006)(66066001)(50986999)(76176999)(36756003)(305945005)(38730400002)(6486002)(50466002)(53936002)(8676002)(7416002)(4326008)(25786009)(5660300001)(5003940100001)(6496005)(76506005)(42186005)(189998001)(50226002)(3846002)(72206003)(6116002)(33646002)(2906002)(48376002)(1076002)(478600001)(15760500002)(142933001); DIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR0701MB1280; H:localhost; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; DM2PR0701MB1280; 23:/y5xI5G2D3Lo5BklHWuR8pAci9RP00anFH1Tgh0xZSAWpQQ1FGTy+ntUYa/VZLjA7JleZG3YScNIaGxyTFgzBREt7kNjqAw0OLVonW7pZQOgXEz/veAgJq/iBAOLVsfmsTfTAv+II1VhoYHn35pMhHd42a9695Eeu3C0H7TH4iGRdd3Rwyvf6BaYDD0ch06MKNogm9UsQIaTxpCHqWf2AcsJU46FHYmsecLDNQtOGqF5p66v0FrCdIX34ukc+iBv0Aga+zZQfeKRyXv8zhR5SsvbGDSTEoUiYWATeEWcIPdP4JOWA76crQJtj8EHHKl/rKOzBAxUvQwtEQ3W+A5RSNk022oX2cXpkTkMyJzrUFuTMBsCEO8HO2Nxyu2TnCCMNWiSVi9B7IgjInwt4bxEjbRlD9XXGBHxf2i0lYmiQBEQXD3COhlt/4xvRO2vrLiv1bnabLSi+w0UcogqJ+ph7qEWjOgT7BEgLiXE2txTJbqM+A/WlvjhVHdPBRsPI2XqwgXyqIu9hi9N/sBRykMbtKMjjdmfG5zxF8QV3oHbsKu8ltGGyd3JyEIp8upVixJ9Qv5aefgcYTae9+M9myjJbHh2Byx3Rlzx9iNso6rcaYtR1wvvqmnrLI+DkMpNezef/CVo1WWgXsHa9EnZwP8t5x6RzyO1oaMnF81RtLwvATFSv62MayvNzCaMP4rI51o1zRfVyhFuq5C8OLbwdbOENt4LzEbJH5ZaH/8g35c3DjtFBbgHi+IUw7uxihVNZGC7Yi9xziJ7gZUH+J4B8aWShLSOXT1D+Wkv6rO763wtgVIVIKfgmcbl8a6h347opJ3MDXRt0JuWYQgNNHy61W/F6+VMji5j2DmPK4FbNjlweT/c3Dz9STnOwT4SI48C2rdXK2bZ/xOxEvgacT3J67j2iKoVoUt2RaDQXMYtzYzFUyQp427m0V/widD4c1uEFV+HRjbzC4/pcS8Rn1bDbTFQlT9lawjnkDJh/tQzvaP4TqLw+JFerpRbREC/NIfLT5xAsmMUvAtDOHdoQUHL7gIyvw== X-Microsoft-Exchange-Diagnostics: 1; DM2PR0701MB1280; 6:5uNRHRCHT7kGnsHJYzP90DT5OpE88Fb4SrFPzbScZtPiyyKRBpfRmTYmavnrm4EJpcMxl/y8jwevtc0pjwVglIXcqx9SEFVkDz98xiRI4KrVF3ZerRH1Tw4EmjPT9PiJ2fHIg6hlXVtH/zKVJxt/VGJX4bIJsSpt2NpEypx6u9RVlMGtT2qevg2YI4tilw7xVuEeHNymBGO+1kTCkUTEm8kw5WZJpPAIE2dSlOsUHP0Cs4C60yY1sCBMUPSGL2nG1HmQtDlLX+rJS+GIDW/soEf1gx0X76D1M8DjO2u0/uBkQKg0q1XqVnTpriW0/mLt4vFOM1PvNLvfmgrxbJfrlWutsGnSxz5NGJSh3UZHwNVpciO7g1K0Ksx3fo7zSQkEyeOsZiDpw8nXwr+EKmNp+QCHLbPn50U75CPDtITvcbnxSAynsUnotRCVdyByvTKiaKepx/TiYsAvhKD2hGgOF2vcQVab/TLEeyJNsoFwn5sq6na2PQhaH3lNCBJbm5oosdiPG1YgzUqP+ZF9h5akAw== X-Microsoft-Exchange-Diagnostics: 1; DM2PR0701MB1280; 5:vIhM6VOgAc4Ug/2GtJ/PO4dwGUP7Ghj/CCTrUKClufN9zQNz5n0jA6sK+EswYGqk2cpuLJmSjoN4yqS4z1BPyDGq8598n5J77hC7ssdWbZTvThA/+6PffCYWe7KlinGfbIz/UTKdsaJsXf2Tcd9+k5HB8rsufGl0e1r8qp0FEmj0au+9/xpse4AKedKZRdV7uCMuNAy4P7zoF+BKMs0anSotvDEdDvAj8cNzTsPIIIKkr8jr2TuhXADtqJ/LAcf41j+MZ95H7D1WVufn3USJQQ4Rwx2gbmeTz0zrc6u672ZIpwtZLhHKf9Mm7ia7QSlV2Vnuv+6O/bGlus4HoWTzwCORHdXup1XOPTLXFnsbfLtciGLGKi8zO+cGKA3J2hRbXnE60BgXLGQYBHgAC1rqDWgBj2JA7ho8EembCrOMc7iCSfxy6A9sQFbm81JtrZ9FXecJc69z2w6lVo8rI0JevBD5DEF3N2Ca6URhdDBxLadrmCe4OZ0hxsp+vhzoS2B5; 24:5OWENzzA8b8X95NMoopy9te/80BAo01GQN0Q2N9Dng0tHx4piKsX4aBqBOaMfMs9zImlnCmukTY7wlyGb7JePyT9n6mU6Fes6vJUspQ9Njo= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM2PR0701MB1280; 7:dtbGzCxmtkNm8+7MDHZEReCA25ShHNiwPL/couMpZXsuF03wlkatZyG35Kc4470Ax1oEr0p2XEjONQABDxyFoj89Qn6reIuQhOboA2vwYxUZVwz3DDCEFN6HXpgcee5+SAVvOap4Vl4xrNQUOkQpWx+ldcMgIqY3SUZcSCNI3xeXqh4rIawOR+KBf+KNmjuGqVxtBn1cMEF8Ys96iRwyIaw3Sv+ds4ZIEj9HrVnT/4zNvJcw05LK6N/y+6DHdx1XAyTwT1codLsuUtg/Et3hptDruTc40Hagm9hngfTm2A/Ahjn+8a7lStpCNejBfLsNERDvHg4NwTUQFAIadVgXDg== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jun 2017 12:02:15.5996 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR0701MB1280 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org ILP32 tasks are needed to be distinguished from lp64 and aarch32. This patch adds helper functions is_ilp32_compat_{task,thread} and thread flag TIF_32BIT_AARCH64 to address it. This is a preparation for following patches in ilp32 patchset. For consistency, SET_PERSONALITY is changed here accordingly. Signed-off-by: Andrew Pinski Signed-off-by: Philipp Tomsich Signed-off-by: Christoph Muellner Signed-off-by: Yury Norov Reviewed-by: David Daney --- arch/arm64/include/asm/elf.h | 2 ++ arch/arm64/include/asm/is_compat.h | 30 ++++++++++++++++++++++++++++-- arch/arm64/include/asm/thread_info.h | 2 ++ 3 files changed, 32 insertions(+), 2 deletions(-) -- 2.11.0 diff --git a/arch/arm64/include/asm/elf.h b/arch/arm64/include/asm/elf.h index 6a37b6facc69..8f7bafa60d01 100644 --- a/arch/arm64/include/asm/elf.h +++ b/arch/arm64/include/asm/elf.h @@ -145,6 +145,7 @@ typedef struct user_fpsimd_state elf_fpregset_t; #define SET_PERSONALITY(ex) \ ({ \ clear_bit(TIF_32BIT, ¤t->mm->context.flags); \ + clear_thread_flag(TIF_32BIT_AARCH64); \ clear_thread_flag(TIF_32BIT); \ current->personality &= ~READ_IMPLIES_EXEC; \ }) @@ -196,6 +197,7 @@ typedef compat_elf_greg_t compat_elf_gregset_t[COMPAT_ELF_NGREG]; #define COMPAT_SET_PERSONALITY(ex) \ ({ \ set_bit(TIF_32BIT, ¤t->mm->context.flags); \ + clear_thread_flag(TIF_32BIT_AARCH64); \ set_thread_flag(TIF_32BIT); \ }) #define COMPAT_ARCH_DLINFO diff --git a/arch/arm64/include/asm/is_compat.h b/arch/arm64/include/asm/is_compat.h index 8dba5caaf5d1..7726bebc4115 100644 --- a/arch/arm64/include/asm/is_compat.h +++ b/arch/arm64/include/asm/is_compat.h @@ -45,18 +45,44 @@ static inline int is_a32_compat_thread(struct thread_info *thread) #endif /* CONFIG_AARCH32_EL0 */ +#ifdef CONFIG_ARM64_ILP32 + +static inline int is_ilp32_compat_task(void) +{ + return test_thread_flag(TIF_32BIT_AARCH64); +} + +static inline int is_ilp32_compat_thread(struct thread_info *thread) +{ + return test_ti_thread_flag(thread, TIF_32BIT_AARCH64); +} + +#else + +static inline int is_ilp32_compat_task(void) +{ + return 0; +} + +static inline int is_ilp32_compat_thread(struct thread_info *thread) +{ + return 0; +} + +#endif /* CONFIG_ARM64_ILP32 */ + #ifdef CONFIG_COMPAT static inline int is_compat_task(void) { - return is_a32_compat_task(); + return is_a32_compat_task() || is_ilp32_compat_task(); } #endif /* CONFIG_COMPAT */ static inline int is_compat_thread(struct thread_info *thread) { - return is_a32_compat_thread(thread); + return is_a32_compat_thread(thread) || is_ilp32_compat_thread(thread); } diff --git a/arch/arm64/include/asm/thread_info.h b/arch/arm64/include/asm/thread_info.h index a7ffea24d94d..abb60b5fc9f4 100644 --- a/arch/arm64/include/asm/thread_info.h +++ b/arch/arm64/include/asm/thread_info.h @@ -96,6 +96,7 @@ struct thread_info { #define TIF_RESTORE_SIGMASK 20 #define TIF_SINGLESTEP 21 #define TIF_32BIT 22 /* AARCH32 process */ +#define TIF_32BIT_AARCH64 23 /* 32 bit process on AArch64(ILP32) */ #define _TIF_SIGPENDING (1 << TIF_SIGPENDING) #define _TIF_NEED_RESCHED (1 << TIF_NEED_RESCHED) @@ -108,6 +109,7 @@ struct thread_info { #define _TIF_SECCOMP (1 << TIF_SECCOMP) #define _TIF_UPROBE (1 << TIF_UPROBE) #define _TIF_32BIT (1 << TIF_32BIT) +#define _TIF_32BIT_AARCH64 (1 << TIF_32BIT_AARCH64) #define _TIF_WORK_MASK (_TIF_NEED_RESCHED | _TIF_SIGPENDING | \ _TIF_NOTIFY_RESUME | _TIF_FOREIGN_FPSTATE | \ From patchwork Sun Jun 4 12:00:00 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yury Norov X-Patchwork-Id: 101362 Delivered-To: patch@linaro.org Received: by 10.140.91.77 with SMTP id y71csp495020qgd; Sun, 4 Jun 2017 05:03:21 -0700 (PDT) X-Received: by 10.99.136.195 with SMTP id l186mr12529114pgd.77.1496577801019; Sun, 04 Jun 2017 05:03:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1496577801; cv=none; d=google.com; s=arc-20160816; b=PIgcN44MCcg5Rmb4J/lGB/kn8rai4vr8YdLjVfIiUqRPgxtwaees9JY1R9EMWaI7ov Rks1z9U97ql/CGwJ9ReQ5BQKTArv6Kx6Aek7JmfoVdpaAsg8YL4PxBzs6eQY8YrkKWV2 jrVQqpHpo64ugtzJTbSIUN2P51FLvpSyigjv5HYsg2x9UryXIpoz7M56UfBZ2zdKeEWo G4t/qZzLCjaTpsDQtTn7MvPPADwNIYbnLBsBKCiKyd2i9nxbh1V9FRfSG+N4tFygZcbw Ef/g5xHp77jYIAhX2dJoL9CU5ZGqgpy2KxfMpAeWN0J+tDuax3y8r06MVpoi3DR29HRO lJWg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:spamdiagnosticmetadata :spamdiagnosticoutput:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature:arc-authentication-results; bh=8hwlnHBqHK5ZqLeRfZuodE9nlk2UDd39cB+MbyTk6uc=; b=tnJcvVwpNDzwjOEy0pTC56hrmjeusdVeC4hfUj8uMuuL+AUl4Nc0aK4eVZNBPDo2Zr KDJ/63BMDQ1jK5+GUvNiz7dlrHc9nU7W/f+rDW9RVGfqBos1UFoOij38zcBbqYNxIftS 2AQ9Cw9Ji8OJMqrtJsJQPuJiBy4KjrVEbwR+PEvSeZv+tck9UpuOpduzk7ZQEgp+v5uK ANA8Z72QTTIgze3xWRqBgGpoKZQvNHwrL8pigZz6h96p7sPdgE+md+F1w+tIRRrCKhZF ZNW6xMB3b3M/z0dBgRY7R4tvCIl4nh0vmBiL7TukrWZXuqOpL4hdfvT7l1+cZphvaxXo guww== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@CAVIUMNETWORKS.onmicrosoft.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g25si4620870plj.529.2017.06.04.05.03.20; Sun, 04 Jun 2017 05:03:21 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@CAVIUMNETWORKS.onmicrosoft.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751247AbdFDMDP (ORCPT + 25 others); Sun, 4 Jun 2017 08:03:15 -0400 Received: from mail-co1nam03on0049.outbound.protection.outlook.com ([104.47.40.49]:2560 "EHLO NAM03-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751178AbdFDMC1 (ORCPT ); Sun, 4 Jun 2017 08:02:27 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=8hwlnHBqHK5ZqLeRfZuodE9nlk2UDd39cB+MbyTk6uc=; b=gg4ZWTxguQAVlblvSyXeLfy4Ee0gNkfNT8XQUJ3yLa4gePin6nip7N0TzSK7g0RfReat71VPEZNSDOcjOI9swD0IWLHL+n5ZGKMYHYUn3oDvtiU2Wg/Z2W3V5cX6Z9377tqNRXjrgaB6LfCefjyQOPUc56Rw6MOlbjjM+hm1Khc= Authentication-Results: arm.com; dkim=none (message not signed) header.d=none; arm.com; dmarc=none action=none header.from=caviumnetworks.com; Received: from localhost (176.59.55.28) by DM2PR0701MB1279.namprd07.prod.outlook.com (2a01:111:e400:5118::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1143.10; Sun, 4 Jun 2017 12:02:22 +0000 From: Yury Norov To: Catalin Marinas , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, Arnd Bergmann Cc: Yury Norov , Andrew Pinski , Andrew Pinski , Adam Borowski , Chris Metcalf , Steve Ellcey , Maxim Kuvyrkov , Ramana Radhakrishnan , Florian Weimer , Bamvor Zhangjian , Andreas Schwab , Chris Metcalf , Heiko Carstens , schwidefsky@de.ibm.com, broonie@kernel.org, Joseph Myers , christoph.muellner@theobroma-systems.com, szabolcs.nagy@arm.com, klimov.linux@gmail.com, Nathan_Lynch@mentor.com, agraf@suse.de, Prasun.Kapoor@caviumnetworks.com, geert@linux-m68k.org, philipp.tomsich@theobroma-systems.com, manuel.montezelo@gmail.com, linyongting@huawei.com, davem@davemloft.net, zhouchengming1@huawei.com Subject: [PATCH 11/20] arm64: introduce binfmt_elf32.c Date: Sun, 4 Jun 2017 15:00:00 +0300 Message-Id: <20170604120009.342-12-ynorov@caviumnetworks.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170604120009.342-1-ynorov@caviumnetworks.com> References: <20170604120009.342-1-ynorov@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [176.59.55.28] X-ClientProxiedBy: HE1PR09CA0069.eurprd09.prod.outlook.com (2603:10a6:7:3d::13) To DM2PR0701MB1279.namprd07.prod.outlook.com (2a01:111:e400:5118::17) X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM2PR0701MB1279: X-MS-Office365-Filtering-Correlation-Id: 8e4720bd-c6cf-4bff-75cc-08d4ab418f68 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131423075)(201703031133081); SRVR:DM2PR0701MB1279; X-Microsoft-Exchange-Diagnostics: 1; DM2PR0701MB1279; 3:IqZqxKat1r9GX7OC6BxZwuCqjAdBBQVyNDE14oSSmAwSdDNd3zDA1yqQmYII2EnxFu3pCf5kruuqbqysWuNOtJvWF+yCLvle5SFfcvkmaz7fBYecav6cxS1lrCC7M7ORLxEwt7qUCPZP51nQzHGc2YGzNxwj58uvshitkB0irgQ1SIOXCFHapYf1RhAg9LyYw6t27Sbm9llNYOjgkq46ZMCxvjwHLgoBweLbTOvhPQDnMVL0GUgXmbGcZSMKAJ9MwbbCbt/etv/qE8OKOP4hHpv8w2HeJCfjEMmMqbj2BrfnVhVAfFIVe9AZbmqQb2LKY0mVDDAnaUV/kZVqI6sNXg==; 25:fL4nHEWicBmftrVJhdbAu4Gpr9I1JQX0bS0/m6fdkGR2rbHPbnjVVImmaY98cpNpWI0spqMAB5HlDSrdxWMQDaF/5eVc0JbsFPWYzIbxqMU9/LrbpIa6z8VD+OnBB94QZuBV8/vHGrFZtcHzKt+SjIQOa5k11tWleriLUTPto/2P93FEs87TwwvziktWcqTDzDkfqShAxRrkRwCN3S8rAYQ13ZdpH5UC2lMGD5yKT7+epP2wSjAYPeC/7+rJrEwn45BpvxprXkSNIWyxsrXgitkscnx5yzb53kGlmfMZXC76nr7k4rPY9xFDZHrXRK1Srg5JsEF4dNEF4401VMXdi+6v03I79fqQ6JyxcHL7g49EKefKMDvaDIZGRziPidXcbhfS9xhY7USa2qvpZLR6B44gIY7TU+L1LVL4PGSEgbfnmBLAG0mTPSxDpSHuYEY1AKEjRtx6sHdia+R0y2dUdn8YwnWNzK1xcoqoQ/t7Ngs= X-Microsoft-Exchange-Diagnostics: 1; DM2PR0701MB1279; 31:LhgtX4djspdKKqT16iDo0qOB+/HLakdEwYvqCtu6S3RRuzxrmirCMJNddsnWxL+6MfsJIIGxjnt4pgAt2mh5oFNz8WdRchjOL1mlzv0WftaM9aMcX8uuyL5fHO5pyIUk5YD/0v38pN+sDlv2/yM1LXGP6/5ZhywQtzhmtYrivbjrkyY/T85hR24/oBiP7P4d3G4i1q/CTfQqipSpbUobGWHqMLBOrM+W1z9zYM7bR2g=; 20:T1GNne3gzUgqtOm/47Asd0y3KboCIFSxdyXHoZxffEPwVRZLgL2l5LaGYx4T+5p1A62lrfjJsJi9wmoieleb1/8w79/FcmGKaSQmK+7/skI0I50QdxYzBC7fPNTn4+ljQlfxEF1bxducZlQVO0+tSpfCE/j6spk5Sm0yaieYHRt8atK4WrRh995DNyNAmsdmlJ1L6W5yUMcYaINwPGZYuiwBA6PNR6ALnta2DyIsdMWsmJpw/4Ky4V12eZcffwlaFDrr13mGq4sLj7ISBvoDELYHpJZ9FgVECAwrEWer4GhcSSqyDlFrfcCYuA27bi9/GsvnCe9jW4064Z0qkqArgXYlHvR9eQnltrLsbvlnG7jgTg33bzAYcOzj2L63+qBYXbYQrVn6nr8Xh7L03KIz6VLoPQFijjPh9BJd5Hf5cl2lhcD3ci5GFKmMk3+r6T5gmXdErMGq9otkz/Ap6CVeDElebpmwjnrAKEMRRiah3/+RaodwFW+WTzGumLOxh5kFMGaVdo1mo9BpJtcppHj53bLmeUzS8C+JyatukERmr1pAkG048zdavTMS+7JdGNykeTbLUow0G2pvmIhwto2iQnKC+2ZO+l2GgV3fHqayV6s= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(93006095)(100000703101)(100105400095)(6041248)(20161123555025)(20161123560025)(20161123564025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:DM2PR0701MB1279; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DM2PR0701MB1279; X-Microsoft-Exchange-Diagnostics: 1; DM2PR0701MB1279; 4:7hLG98Pr4vSjCa2ic2oWnWVnDxd9vTQ83k0HY20lymzi7TouF7KRA3JNpDX0Gja9FxXLG+WAm/5bHlIO+Fu2y535NzAHrdtlUEdAj58X4MRFig9kQe+LLQ1UZ7u9UQ5OSp7m1V22Jaxq+2hroVxW1CrP3o7QIENxpeC2BbjfMHbOHoYEE2nK74HR9JxsW79sVBXoqJaLN8b3bJ9aT2VddwnThRdHUwrjNAWe+Ildzuy3tVHh148jq7Um/UGuKLa6C/oEjIU1i0zgEu1l98//1sBwotz4KBtjons5bjvUuqh2wSct7eNZFsLImSnTFdZ6dMZFvSs9PdwmAHU/ZsJ1sKV5hs6Qy8Mb6KbxN/N4zb4U9KEoMPnteCLpPfwK8/9b21OBkMJ5ijOCUXCMWUawwjzMn/N54MzSj1HG6FcsCnO2XB5aGAXbKydgyzofpaP1ydMkZbTTa9HvhVF66r+HZZh5WUMTOxJbNQsIFJ7QaSy7TtZjWsCmqsnNfo92rhTnbc5ZtVKNzQvsIKFK9/b4Mfr/C/Cdd6VvUjfYrqchU84JjXTUC+SM13zJC0TSt7xKlLRdlRL+D45jWmGnaYkrt8E+JYcqzoCvcRdFwCm8oGTuxd56bYDVKvwf0qelBmzbhbCstVbcbTlXwpJ9ilEuYHQjtBTj7/xTVl14D5dr0ipJLpv16lVwD1lawlm65Bjayxuv575wU2DsvsioFYVi/BXXSvvXIfYkcsN6YJ1qjt3xvwrToQBSuBKfGi+FvgQOpNN///RtqrAr/PjJdTDxgw38+xpYzoiHJ3PD610ln18ZjmHtYWT7OPmhyK9Fqqs0ZtHY1qrLxMctrmN48iAZx9JzeACUW8CREqvU8+V2/9Yt8HAzpl5dwPUiWkHbeIklg41AeAXGWlQ/aT9iA6EiJ4fz6oMiTpjVn5HImR1Xna1Up5K/ANOujMc+qlLC4YnB5lb8R9EbsFb5gxmkpyOAy/3iJQGmKQcs+iK7RjRGTA0eixT9jQ2dl6n6zXvJJkIWVifXIbbrvXTVhhEcM5rWwM8CmfdFIQvWLrJ5FJLzr9oGczg7hTlNwyqqZRb+2Cd2m/WDSDVQp6lpKFqQSAYyXkeRewt5r7vHLroXNRopDbs= X-Forefront-PRVS: 03283976A6 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6069001)(6009001)(39400400002)(39850400002)(39410400002)(1076002)(38730400002)(2950100002)(42882006)(50466002)(4326008)(5660300001)(5003940100001)(54906002)(6116002)(33646002)(6496005)(6666003)(53936002)(3846002)(47776003)(50986999)(76176999)(36756003)(305945005)(25786009)(66066001)(48376002)(76506005)(42186005)(6486002)(50226002)(7416002)(8676002)(2906002)(81166006)(478600001)(189998001)(72206003); DIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR0701MB1279; H:localhost; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; DM2PR0701MB1279; 23:YtcUAHEp7f1O9MotKNrKkYSX9veFDOaqUA62iOyQTViUDw/Vc/JBTCdvT11kUppWIaC+rTgFT7S/nvbBpTHYxKaNEbCAuh70LNgvS+L39RMVl5U+BUxEAn58Nta/FUgO0xpXfHLCjlPpRfj2Tv7lCE46j8XVr5BegPGfsFOZLt9RfSVnzoFq9j8Kr/951os2Z/J6THoNIb5viCHcx+6dn0LAnz+telxDt+0DwEWmnhrmzAVJEAZW6PmR2syfVRedXPGuEK1iixW1oRax0pHGQFc02A9YlDCkXHmxMsWehyhB+FFryiuoxCGRolZh/5FowbsMTgWePBdPgQb5aT5WCDdaRFiiXlK8TQvtBXiOUnePllCSVDjs80Yzn7S95DnJwTY3nL+PjgaHqziMwqGUK3Mn/jCK4c4FWbnLbzF1olq913CxyYCqEBXAabHCIhicQVnd8ZGb5cizBQg9/oaCYdR45VYHIkE/TAYMn6nB7i2KuCh85ggJpvF2ptnQGUuSjACHTMqqm+//oCrSNTtXcjQfVheel9t2WAC0io5NT+eFO0EtWQETRcU63xZ02p5V9f5XSkw/iSoa2TwhKqOB/NhlOpZzIem1R/m/xFtKwkcOZeMPF0c4AytMT7XS+AShVhGhs+PFjmOoTG+0kMro1iBpjsE4lpA1AFNPKY6mt8UXwUyW+lgT6Iiv+0JNdr0m7jCMBkwcjR/E6Sx+jnNdChTuEY/JxFjJnEUOc0hAMzg8rSdXmv8xskZPDjgSe45YXN2a59PhIjdBASoJCxNwtDOvWWyOdmHJSIFtE+CvCMKQTVsT23WOd7PRV8UJzdW1QYtyTlhsUZA12Ji68iMekmtFcJiJHGLKwGQr0e5TbDe6c2I5gSZq6zDbg8KonksHQyen8F4UySFi0l6ZKFtg+MfOFwCo4gKd9dM8hgd8OQ53xGlTvbJ/yufY3hVXO164xH4ClKNXHrLtN/VnBPLkO02crgbvONDd8B5tES1mt+KByK+CRGhYV/UY+RK32cTo X-Microsoft-Exchange-Diagnostics: 1; DM2PR0701MB1279; 6:B+t/fprxLPpjibozjzRbMIEs8U9zrYBZdmYZtBiJHsM8LVZG6PPqS6pEbvbVOI9op+HHpNDUZ5bg/R3nDfMs0d8FefOReOB/Fxp2uxZogTfeSipTTK9Cxl6zsbBVuVDikacigfBcNBuuLjkFyjd7sarg4LQVsbhMZ0wmUM4NY7mNGnkilLAy9LQ4IZsnAT1ZzGQvLPTq7LpEH3Bz/bjodVxPNcnBvos4+GKRiwdFX4p0eHnyephlZ+BdBaXu4j2hp+SJsLHEy6EoSb7SF5NmhPULV58gNYta7elR5wqpWUV363z/5EzdyWP3np0SvPd2E6BMd1KzHSGm2hWcok76K/53svVEmlzWVMpHGFk1DRRl3CJJgf+SSyESwd8GCJ1qQMAj3EpD6LvcG3ILQ3b/wmS638NxXto5mh44rhNp8uPhpx6AOoc0IXw1eY+cjBEB6qG6TKlomhO6z3ag+ER518LHvI+tLg/YFgXmL1m7okALpGUM9TjOpPszgtCew7cgHBQ4GeqAD5xZON52hQ8JDw== X-Microsoft-Exchange-Diagnostics: 1; DM2PR0701MB1279; 5:Mwe+zhS3xpzFB6jlzKZerQloDfk4Co5WME0Ib97Wz7NuOmtBaIVrCicUib6F0uHsrH6zxX7h4aMBtZ9SrI1zMHhGpJuzkFsl2X8R+8PVEc13rs0oaculBu4DKPfOeH4kp5SEPjCawawuF2VSvGNdRBMMEwR24CVkZhVdUnrJN8ID9NxMiRnwYEeVwjJ2xfH9DP3D/VYCfNzt+V7Ah8tbnKebH+O93ab1qZdV4dptz6RI+KxonVjkrt9J6fxlmOKai+c5HTkQkGSb9LjDUbhAQ3l1AadH6a/YzJFBf5knt7fi1rcq0eTTILn6yH6N3XumcQtea/OfYqx0MBe6E4LR9QGr+MKLzxJJ5vsgXeJRlzIXleatRBDF7rrjfP3QjlIfL3V/ZF3vV2yM6S37l/2Dqkk6FN+9YpfwcSIxSSUtA2R7CR3Li4gUcIcu+TwMwevgEG0wXSe84ucQT6Z6liXu6vjzJkCmBvdoeAJGMW0pqL1HhGbBqfprrG3jBwRkj6Wp; 24:7PoKTYSn+1bFUIchpDV4uDNhgQynzexKyJe24W+/j2MdcboqUDG58X7koKkC1hQ7bTNOR8EF/6qtMMNs/373MwYZ3Ryv2gg2bndqta3Ngns= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM2PR0701MB1279; 7:A+ALI1dZZmvxX5ETENJjlrCMgS+iJlWrmyakbpCh9M++O0Fv+fBBvgU5ZQ0ePbr5RjFG7HbDnzIoSAo14HtTNx4zlWhiK0HP1peGa6D93/AebFQDxU1tm0SLhbckJ40VW19Xk7+HlcDB6Pom6Ew81wsYP0rHYmE6QupEmYnzkBXsylPSw2QS56ua4YFpnJIOthow20ynOG+KyYnOq56+fxz0R7NtkrQCch2IqJYMxSWRjAAQPNrzbLkHCxDgfmmn+yA5vn5etJShQjb+n9vneEbOpbrfq+TpkSXzNRS6jvALJXB3u4Vok+NBS/hQ092htsBwZG1pHfpU4fzLq+sOOw== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jun 2017 12:02:22.7200 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR0701MB1279 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org As we support more than one compat formats, it looks more reasonable to not use fs/compat_binfmt.c. Custom binfmt_elf32.c allows to move aarch32 specific definitions there and make code more maintainable and readable. Signed-off-by: Yury Norov --- arch/arm64/Kconfig | 1 - arch/arm64/include/asm/elf.h | 27 ++------------------------- arch/arm64/include/asm/hwcap.h | 2 -- arch/arm64/kernel/Makefile | 2 +- arch/arm64/kernel/binfmt_elf32.c | 38 ++++++++++++++++++++++++++++++++++++++ 5 files changed, 41 insertions(+), 29 deletions(-) create mode 100644 arch/arm64/kernel/binfmt_elf32.c -- 2.11.0 diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index 417760b2663b..2275db8dc7c9 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -1069,7 +1069,6 @@ 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 COMPAT select HAVE_UID16 select OLD_SIGSUSPEND3 diff --git a/arch/arm64/include/asm/elf.h b/arch/arm64/include/asm/elf.h index 8f7bafa60d01..f57a001a70bb 100644 --- a/arch/arm64/include/asm/elf.h +++ b/arch/arm64/include/asm/elf.h @@ -177,35 +177,12 @@ extern int arch_setup_additional_pages(struct linux_binprm *bprm, #define COMPAT_ELF_ET_DYN_BASE (2 * TASK_SIZE_32 / 3) +#ifdef CONFIG_AARCH32_EL0 /* AArch32 registers. */ #define COMPAT_ELF_NGREG 18 typedef unsigned int compat_elf_greg_t; typedef compat_elf_greg_t compat_elf_gregset_t[COMPAT_ELF_NGREG]; - -/* AArch32 EABI. */ -#define EF_ARM_EABI_MASK 0xff000000 -#define compat_elf_check_arch(x) (system_supports_32bit_el0() && \ - ((x)->e_machine == EM_ARM) && \ - ((x)->e_flags & EF_ARM_EABI_MASK)) - -#define compat_start_thread compat_start_thread -/* - * Unlike the native SET_PERSONALITY macro, the compat version inherits - * READ_IMPLIES_EXEC across a fork() since this is the behaviour on - * arch/arm/. - */ -#define COMPAT_SET_PERSONALITY(ex) \ -({ \ - set_bit(TIF_32BIT, ¤t->mm->context.flags); \ - clear_thread_flag(TIF_32BIT_AARCH64); \ - set_thread_flag(TIF_32BIT); \ - }) -#define COMPAT_ARCH_DLINFO -extern int aarch32_setup_vectors_page(struct linux_binprm *bprm, - int uses_interp); -#define compat_arch_setup_additional_pages \ - aarch32_setup_vectors_page - +#endif /* CONFIG_AARCH32_EL0 */ #endif /* CONFIG_COMPAT */ #endif /* !__ASSEMBLY__ */ diff --git a/arch/arm64/include/asm/hwcap.h b/arch/arm64/include/asm/hwcap.h index 2c7fc5d89813..99dfd9277559 100644 --- a/arch/arm64/include/asm/hwcap.h +++ b/arch/arm64/include/asm/hwcap.h @@ -47,8 +47,6 @@ #define ELF_HWCAP (elf_hwcap) #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; #endif diff --git a/arch/arm64/kernel/Makefile b/arch/arm64/kernel/Makefile index 3c70db6bd570..6f872741fd3d 100644 --- a/arch/arm64/kernel/Makefile +++ b/arch/arm64/kernel/Makefile @@ -28,7 +28,7 @@ $(obj)/%.stub.o: $(obj)/%.o FORCE $(call if_changed,objcopy) arm64-obj-$(CONFIG_AARCH32_EL0) += sys32.o kuser32.o signal32.o \ - sys_compat.o entry32.o + sys_compat.o entry32.o binfmt_elf32.o arm64-obj-$(CONFIG_FUNCTION_TRACER) += ftrace.o entry-ftrace.o arm64-obj-$(CONFIG_MODULES) += arm64ksyms.o module.o arm64-obj-$(CONFIG_ARM64_MODULE_PLTS) += module-plts.o diff --git a/arch/arm64/kernel/binfmt_elf32.c b/arch/arm64/kernel/binfmt_elf32.c new file mode 100644 index 000000000000..de84bd206960 --- /dev/null +++ b/arch/arm64/kernel/binfmt_elf32.c @@ -0,0 +1,38 @@ +/* + * Support for AArch32 Linux ELF binaries. + */ + +/* AArch32 EABI. */ +#define EF_ARM_EABI_MASK 0xff000000 + +#define compat_start_thread compat_start_thread + +/* + * Unlike the native SET_PERSONALITY macro, the compat version inherits + * READ_IMPLIES_EXEC across a fork() since this is the behaviour on + * arch/arm/. + */ +#define COMPAT_SET_PERSONALITY(ex) \ +({ \ + set_bit(TIF_32BIT, ¤t->mm->context.flags); \ + clear_thread_flag(TIF_32BIT_AARCH64); \ + set_thread_flag(TIF_32BIT); \ + }) + +#define COMPAT_ARCH_DLINFO +#define COMPAT_ELF_HWCAP (compat_elf_hwcap) +#define COMPAT_ELF_HWCAP2 (compat_elf_hwcap2) + +#define compat_arch_setup_additional_pages \ + aarch32_setup_vectors_page +struct linux_binprm; +extern int aarch32_setup_vectors_page(struct linux_binprm *bprm, + int uses_interp); + +/* AArch32 EABI. */ +#define compat_elf_check_arch(x) (system_supports_32bit_el0() && \ + ((x)->e_machine == EM_ARM) && \ + ((x)->e_flags & EF_ARM_EABI_MASK)) + + +#include "../../../fs/compat_binfmt_elf.c" From patchwork Sun Jun 4 12:00:01 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yury Norov X-Patchwork-Id: 101364 Delivered-To: patch@linaro.org Received: by 10.140.91.77 with SMTP id y71csp495272qgd; Sun, 4 Jun 2017 05:04:05 -0700 (PDT) X-Received: by 10.98.156.133 with SMTP id u5mr14757799pfk.76.1496577845512; Sun, 04 Jun 2017 05:04:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1496577845; cv=none; d=google.com; s=arc-20160816; b=W4gJ0xziqOkzho5sPnwrVFFrWeR2nyy3jlfON7TJDqNGVC2JMSqHactTId3k1ZBErZ MvdHhMv6zlp8PWds35yQLpgnxVNZLD1rKu8GJ5PaRpiwXK84YBVkUH3xgoEg63wKdTr1 /e0gLgEE+lRZFH8G/Yxzazge4Smx0n3Sxv3nmGVQ1HV8O3g4GpnsJnHxEELzx50BBTXe 5CFSY0aa6e/JQRjhLzbqXNU5yh2rlAlVED2JqwJkokoEOEKOE1qOuMBgELul2lxkcABV 5UIFoF7CRHBTnASIDjots6QxkLh3/yFb0LPfXTb1wHE12zpDVYZsve1Qr+9u+L+Mlpf8 wkKg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:spamdiagnosticmetadata :spamdiagnosticoutput:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature:arc-authentication-results; bh=QIxeISHmHiVRY+LqvDVJdJG2Cqu6YtEOcUlcyeZ8140=; b=MXyePjxRDm811aadCLGQuR94pddlHtG1rgks361CyNHZRs8LjrboiJV+unwJz8xPXT q5Hq4o1szIuxGkvb7mcIgqwDe/ZB1Ww55vkvsRnmA2bed2TzRBabWQ7jfQ6nsu4ShNPC EiIzKfpNbFB6Q1Yn5JBnxaEY5QhZjxp1nUPJQT81sP/9sC8igCVo755QWRQHZm6EQqwU ZvZF1facaYEJUafcm+mv7nRctr4zmGwvVqXB0/qD5hvWHX/bHqpze0Gn+bt1BOOMVOZh Jxymb0xepWWyIdbHzi/gVipcexTkRSPCwWu0wxzA0rMIQixfrxxyXc/h5HEHi3lz+wT4 74WQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@CAVIUMNETWORKS.onmicrosoft.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g25si4622106plj.529.2017.06.04.05.04.05; Sun, 04 Jun 2017 05:04:05 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@CAVIUMNETWORKS.onmicrosoft.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751359AbdFDMDq (ORCPT + 25 others); Sun, 4 Jun 2017 08:03:46 -0400 Received: from mail-bl2nam02on0044.outbound.protection.outlook.com ([104.47.38.44]:47264 "EHLO NAM02-BL2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751230AbdFDMDJ (ORCPT ); Sun, 4 Jun 2017 08:03:09 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=QIxeISHmHiVRY+LqvDVJdJG2Cqu6YtEOcUlcyeZ8140=; b=TU+jE6JZOcUBKt1ZNqQqSrk6N9r9sUVE7Hh69mFioEUb4CX2O0VhV6jU3gT2iM/vPumyRw2svcVgNzyNWwDWFN10tqLn+lMdEBzkYURQukcXCvvbf3NpwO4/fx/8yqRE0SpS58zoIQ642psMXAko3Zafx5bzLBAWSpHxkS29CqE= Authentication-Results: arm.com; dkim=none (message not signed) header.d=none; arm.com; dmarc=none action=none header.from=caviumnetworks.com; Received: from localhost (176.59.55.28) by BY1PR0701MB1272.namprd07.prod.outlook.com (10.160.108.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1143.10; Sun, 4 Jun 2017 12:02:36 +0000 From: Yury Norov To: Catalin Marinas , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, Arnd Bergmann Cc: Yury Norov , Andrew Pinski , Andrew Pinski , Adam Borowski , Chris Metcalf , Steve Ellcey , Maxim Kuvyrkov , Ramana Radhakrishnan , Florian Weimer , Bamvor Zhangjian , Andreas Schwab , Chris Metcalf , Heiko Carstens , schwidefsky@de.ibm.com, broonie@kernel.org, Joseph Myers , christoph.muellner@theobroma-systems.com, szabolcs.nagy@arm.com, klimov.linux@gmail.com, Nathan_Lynch@mentor.com, agraf@suse.de, Prasun.Kapoor@caviumnetworks.com, geert@linux-m68k.org, philipp.tomsich@theobroma-systems.com, manuel.montezelo@gmail.com, linyongting@huawei.com, davem@davemloft.net, zhouchengming1@huawei.com, Bamvor Jian Zhang Subject: [PATCH 12/20] arm64: ilp32: introduce binfmt_ilp32.c Date: Sun, 4 Jun 2017 15:00:01 +0300 Message-Id: <20170604120009.342-13-ynorov@caviumnetworks.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170604120009.342-1-ynorov@caviumnetworks.com> References: <20170604120009.342-1-ynorov@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [176.59.55.28] X-ClientProxiedBy: HE1PR09CA0085.eurprd09.prod.outlook.com (10.174.50.157) To BY1PR0701MB1272.namprd07.prod.outlook.com (10.160.108.18) X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BY1PR0701MB1272: X-MS-Office365-Filtering-Correlation-Id: 2c915528-4c40-4716-bec0-08d4ab41978d X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131423075)(201703031133081); SRVR:BY1PR0701MB1272; X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1272; 3:Jk1Ev74GdbiO2oAzRbBxdEssntpu6wVxN5NFazoq1YMRXdjXEOO8QmZ0kKPquQVeGKRz6Vpag7fctHipG2dMp5gmfsuEDXV8N3oRWx0dchRFeohCvWNdFM2KQt/Kdp4I1rFip9wQe8z67c92f6/8BGAInKhSgnDhiYooAWymsDAQw4MRcAljm9/8T94xqE49qaWc1M8tcbpyp/2tkcw89coUaVFkI3p6YLnS1M+BqXOihC0yQIp8y4mlz1DIAxz+X8lvx7zIE8y5jLm5fLNLgP6hIy2mqtXM1S6LsAYV9qMYlyUCVimHH883BWNry9kuKRrpTQpJqv4KT/cC9aSHbw==; 25:fL6TVdGnANymKksiTljXxolvsXPWbUZa8UEUdUMqUuws6euhdxa3Ugr9IR5EviAveIPcx3TLGxd7iwgkJPPpqNNfV+Ls4z9q+VIqgxOOyo384g2hZyp1I0UuEnjfF6eu7WAstg7RK7BL2m7XGTG+9OSYfq5vsyFgTI5tzlxakXVZnvh8K14hiuA0Onght/bTrMoRme1q9qjIHqoshmJsXXB8IVf8bmtiha5dCgvKtG5PRhb1BDBLAW5E0dE5VwJ0sAYjtluoEWK/fBiq3C49kyiBRYNdxq/6kZqm99SW6c/9sS38caRboI/iN9pBjUL9wfiq9gKOEIrsKdbJ1rcYQgBEsHD4gISUEXRm2PB+O13mxFlrJjSDrLAlHAOSgNpHupZEY/7qeVH6wImWVgEL0pPmp/fS+BzqcCuh68onLCICSCkLkov63Cws73RcC3soZZZcFdWmQxOV/z+PCJ32W/Ciz2gGQPc1CtlcZwl8hn8= X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1272; 31:nQA4M4UzT312d0XzD4Q1pf2k0W8qPIXwW9yZW3DZ35AyE6pcZJx5tlUGa+30n276+F3bF3FfhVP/EJLhi/R5/mLtBYixLZ9fSmERZvjlfi/748BJLBtNhATCw0VeN4wg+g6izDjNKNTU44liccxPagaRoPl/XDKDga32CmSjxYa5OkZktoFXHH7EJWJ3zbuku9bBV7fSotiIlhV1w4naxJ2pKbmIoTTwTUOEFM3cIVs=; 20:KlUrgOg2+GaT2hEP447EAiMiKyHVSjt6XRYASOyO01mNLUTbFx7Frr9yFWNfGNDxZbO9nYR4dMDt8N4pUuglTyJ3Cb26R1MCSi71ef6nmmoeq2oawi9qzuSz3Tk8f/Q/TkPLNpACjGvyMBf9b1OOfm/bkLpU0LBqUtDQq8Q0zYwxrDOCkjbLGNxdwA5J22LVa1VCsfvkE7pqFn56dxVqQSf+IDVyIO0pebNT02DY5zAJiPmxrQ2w2shj4Qj54r36OliduYd7fTQiJ+NMnxUJjlqJ9mblBq7/nA9ZngWyEKTUocaNO+1xYLvoZJQLQHsro2gyl2F7ZEuDhHMM8ByzwyiNbAPbDkWbEZohviyfAUZV3MURQ0nUeotm4bt751VsTEGZA4REDPGfe2+QqgXXzqeuZL6YTGJ55OZ3Me6CYRrUjLYmZgz/Z4t5nYPkgs+vfa8HzpJYwXKc0xWgNqY1CE+jMbnSbKFn7zxAQ2+SThI8+gY/8C9LMbTApQGrd30/+4NhwX3lczw7OoF39Bm5LdE4ihYt07DLhYKltd6MXDWvmOJW/V5+2FYo1ctk81pSVMve5v8qVi42MKf23azRkVK9wCKk+fkeJ+Jf2M4U2iM= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; 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)(3002001)(93006095)(6041248)(20161123562025)(20161123560025)(20161123564025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BY1PR0701MB1272; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BY1PR0701MB1272; X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1272; 4:XQ5CIMfSAeXhUm2/9F8yfAxw3h0vD75dnvOmwCl7KjJ1hX5CxD7EiGXQ2O6qkCw6UmRuSkxSuYI5npSlrPUr1y3mSYtg/h8uecR8Avaz0GPwvM3FJ9gPhH/IqMK7XouZ93bDoR5mF5ej3Z2B/G6s6M5ubqTxyx3EANkHAiMh/6qEW7zNrbQyVnI6KTJHHpvespMtZlcV+J6k1BRTkOgbuTm8rMUS+WKlmDfRjcyKEx5NQv5V501cgsV2BxlqaO0Yi0zmsLK8T8MBJ3pkF4OJAwF9jrF8SeSJJseyTor4CQF52vVrEU0vsJ+a/z0hzaFJJ9xeW4lWYGocC4LNPAJP9/2Jezlft3dZIUzng1aSekSbUFTycX3DpNBS362nPe2f7IARa+Yiv0POFXdWWs07MtyvfQttyAxvhgwemJ+GCPVDqrF9X7nj42UCfORtke9ijZ/oYw1jpmABKp5dTD8dis51r6B+G+1yfiO7IBjKg7XFlAGvYoylPBfyHzQsHJv0Eb0z/WymU4r930VaAwBON4Ho43/+fF8Hk6+GuVFgqH2SRYchpWxfz60SgKe2TgOnRXlLiwwfZ0w/D9L50GbN8NiF2TsK/yWDxEPLxUh3TOY09FAybp55b07PFBZd64oI+YAjl2wAiOVB6DTXsBIiYKYY/f+6oG1T6oQnm/I15mpEsnhcioe8RkBXP0t71qjKNz9z6bnAhRU9rVNA+3ZV61EMO6UbEFE9MhFRX37FjTG7QnTd2h66qefZxXarvogdZ+kmGGGqYO44qer01UdP+qaHNVpsYmjCqEdJUmedZEVOTugUBzr6NuKdSNvZ540vsBuZHZWJUaTbkteTkXB/PDAUlIETcaYwfy0cnEjkuLdpZbvyMN496ZeYnb4Pno/stsAzz+jot/+f6oirRBIr3Ya3E/SuCY1C8gQUrUnxYtAZisbges9Vm7qeKXZMCgQmY+Xz9cvv5h2ue5kG5gsZ3X8UJ3YMRYzicXYyI0LsCTF9FVwqyZmZVsIs+SuSskOmlpHEEHQsEILvKZQpQbxyQDqB6Zsg/gUQK/cckUEUnxeg4fOmm+mQAtGvZXGzQsI90WQo/t7IOBVByYo5/kAMZg5cbYhPhNH7Ya5Nu713G/0= X-Forefront-PRVS: 03283976A6 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(979002)(6009001)(6069001)(39450400003)(39850400002)(39400400002)(39840400002)(39410400002)(6666003)(42882006)(2950100002)(6496005)(47776003)(38730400002)(66066001)(36756003)(6486002)(54906002)(478600001)(48376002)(68736007)(72206003)(2906002)(50466002)(81166006)(76506005)(3846002)(305945005)(53936002)(33646002)(6116002)(5660300001)(42186005)(50986999)(25786009)(50226002)(76176999)(7736002)(1076002)(4326008)(189998001)(8676002)(7416002)(7406005)(5003940100001)(969003)(989001)(999001)(1009001)(1019001); DIR:OUT; SFP:1101; SCL:1; SRVR:BY1PR0701MB1272; H:localhost; FPR:; SPF:None; MLV:ovrnspm; PTR:InfoNoRecords; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1272; 23:5Jz2XF+ZesuVTfTSLbaIwoLclKpaCEus1soTA+y3jYXu8RIYaetPknxmwaFla6CQE1AmEIDrJfHj2VqUkpcUcX01NNWUvMWLVThw+RYpOpc/mH64NClPKRuozQ/BqFR44UebiGVyUlV/9unWieUXMfYkqQEcHjnSJ+fczZQ5DRRfjpMvBTzid7HyHaSfSl+vPz5k4YbVo5ZqZgld0As11yJNn3l/7/6MS5OYwWmJyw/tle6/5Iowdlojl2Mi4lDKfUoiXTMlk4DT6/W+uIJ57jMdB7etkOMHvN6otIeDLFXe2IxALt8CCdVWESXjaZXT74jSMb3Lx7IAb7dqqOxhQI9FDPZSZqwXJGxk1a2b21P21tw/E/pXjKKu3GongU08PrY7uq/eTvb+dsAmHJBisGp8Z2Kxl/ehjVcytL3lnvCE3HIWj80vOD+aP8dNuF+xXoCqwyHtOc1XG0PSFTJSuvFATV5u8O+//OQRY/qU0pK4ct8hWNTrWFO56mmvYYBuDT9S9ZGXa17JT+jCIsCThNi3QtdQ7ZMGN7WCAZBnnDtxBWYpKsuQPp9ZuGV53sUQ0ekeDvTsax7Io8YMcN5RW8ozfWPReeaVqNtETD107veLwptRobEeV0sxVu2xf10xYvufH5dt5XsuiR/yfULj1qy2pKR/y+Q98WriZNhY6Y6KP4W+vXdG9UvqVNTem+hQ+8XdBKqlSMSSM+9D22IfIZK7+rcDGRpwuO68YSmJGjPq7vuNU5DcYFxYezIAaMU8E68ynbsiyyT5oBIYyY8u4RtUF5TDB7fEjJL2ATtx7lE2xdjXi+3uRqKLTZFi0+wtfZNeLW+ZRgc/XcwpYmbSrB3lQzJTRKPz5+YwfRCEO5BUto0HLZ+4lhhWPwyOEb20mKNay1fYniqrwFuznIFrx76XeTAFFZonf+QRHadq/xCMTG0KkHsT3HjPX6GvRuI6+n3NJjIYfxwB9DFtYZbF99qIgr7DK4+r/iPnnc8NP3PGOWhxfGL4hG130Bs5xdNsP/oUkMgRW4AwnkFXZkd59xmf9WlJ3dPcFOl8AE3tM9ItFLKFPqhrC/e/ihMVNqIhQEFztGUp75t2eTBAXYgjYQVQJZz6e1hUydOMwcVsXiXiXodab1jVIevwLCxtK6hwzb0IPurMu9TV0mmfp+OmbTTt0e6tmj/l7DkWUU2At5Yk39GZWuLVvwWK2Gg7F9ZqgAYTk7x0vVueWZ4/H58Giw== X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1272; 6:EGiOBvYcrL8clZRug7jfqHLfxHcY+G+u2xAWkCFfJAiPQOBv3+dNWb9G+t25IP5R4TSkF1Fv+rvoVswlPR3nX8QE9RcKlj8pmJdDlMTM0fYOP2KPnoz+J235H5XPiE5bM03n81EBybuZqllWP9ZeRPvl5mZp9G0+iEOEdDLbtSZSBu3gZrieVlpwr6bwVeHftU+rof6vgstx5DxQ14LqC71DcdkyMtCveXgShzOnSSVG28d+UpRns1rAJfBUzVnIFVCZkITgAIszdvzkxCoBwzl/3q5/LoSNgxicnnFPUJO3zUZQzrxJi7RJP4H0noIw7PEcUSqLhaiagrGq/XwNnQHFZ8rCBalbhSU9hHsgGg9prKLRkHIWjNtaGhU2fHLQQy6ITIEddmNkhbZcGgRVh5SXzNsgOeJGEt7L113/28FtPrjwoGhflPJO+EoWx1cZu48XeWU2toQCUuZOHVZXaMigB3kbHzGSH/zNSV/hY8e/vFtbVAXlkVKZmMV400eat/Dq6pJX9zWdAWZYoYEw2w== X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1272; 5:zaBVQK67yDv6JiBy9j7HwSeAFf9j6LzDEpAJ4GemOA0y24CQQNJYaL1EdLUA6fkF3oPm+8pP3+macbBBgtGUNBzpF4a05j6mNl/PKtKDVf9w9EFzCVYGmTgWO9aoinDDOjuTrowJexIrANuoSH72UabqDIo9aACPO8Nh61xgVzbLptoYXe9bD2wgZR5NYOtDlhujd17GIXMzJm4ECfJRvZQZW4vXq51cdPEn584LSENrGUAZ0lfJfthmgnnRDY17FDIuPVQ+LKJmPxl0MTjWLeaA9BjcbNmTNyrkh7r9Oes5pDjdycgblto7wAI2SHLzJ61uCKk1Aqb5EZCZ3Xnu3eVttxVeyGut6J7n1Q4v15e3Z6tKlH6rmMRLT5XIgi7hkA3+LrrSeRFZYanu9rNc2QMXRD7JpUuuSehIlm0iIz1+S26nBRG0tfXOo+lklApl1qvA2fMnSTABxQp326CZpUlnWJPjA8wWa2qIe5e0ehFcH9H5jG3olVr+pAnAde3C; 24:yvOoVba4lx37XbvJ8me4pfAOhCSkFoxFBEaXuu44anuu25E3Clyxs94BMScCBAxzlJJIq6lJAe4/VgR2htesvEHCuRQ9/hj18UZTxCyx0GU= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1272; 7:gBARX+zW6lgElS8wSqoVjF0jZ2pZPzsg72r38ybpP8dv4bfYirAM5uHgTnKi2MDvZdHtJeJE80NOg5Ok+8nf7bqsPGxIvG3WYmp6QcoQRZrZL6HiX7+q8CpXLstG05rzHWH6D8vYcnku/LAugSVk/ZkzdMK3umcsPG7wjIHTMYPToFUTMaaAHDthg640KLiY3vyLpDy0YNIyptxs/+HYvUUKPslC+naOT3FGd/kzAiEM8NqQ7o2GKVt9sumq4F+7vvX5qyKh7LQA9/C5uph1fHJ/kMks5PsL/lUJWEQIun7EbsT2zp9KjcxUgn2x/TqoJSvEx4R7n5wGxwPu0tRGNg== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jun 2017 12:02:36.0580 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR0701MB1272 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Like binfmt_elf32.c, binfmt_ilp32.c is needed to handle ILP32 binaries Signed-off-by: Yury Norov Signed-off-by: Bamvor Jian Zhang --- arch/arm64/kernel/Makefile | 1 + arch/arm64/kernel/binfmt_ilp32.c | 85 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 86 insertions(+) create mode 100644 arch/arm64/kernel/binfmt_ilp32.c -- 2.11.0 diff --git a/arch/arm64/kernel/Makefile b/arch/arm64/kernel/Makefile index 6f872741fd3d..5ba41095c466 100644 --- a/arch/arm64/kernel/Makefile +++ b/arch/arm64/kernel/Makefile @@ -29,6 +29,7 @@ $(obj)/%.stub.o: $(obj)/%.o FORCE arm64-obj-$(CONFIG_AARCH32_EL0) += sys32.o kuser32.o signal32.o \ sys_compat.o entry32.o binfmt_elf32.o +arm64-obj-$(CONFIG_ARM64_ILP32) += binfmt_ilp32.o arm64-obj-$(CONFIG_FUNCTION_TRACER) += ftrace.o entry-ftrace.o arm64-obj-$(CONFIG_MODULES) += arm64ksyms.o module.o arm64-obj-$(CONFIG_ARM64_MODULE_PLTS) += module-plts.o diff --git a/arch/arm64/kernel/binfmt_ilp32.c b/arch/arm64/kernel/binfmt_ilp32.c new file mode 100644 index 000000000000..bb31325e6f80 --- /dev/null +++ b/arch/arm64/kernel/binfmt_ilp32.c @@ -0,0 +1,85 @@ +/* + * Support for ILP32 Linux/aarch64 ELF binaries. + */ +#undef CONFIG_AARCH32_EL0 +#define compat_elf_gregset_t elf_gregset_t + +#include +#include + +#undef ELF_CLASS +#define ELF_CLASS ELFCLASS32 + +#undef elfhdr +#undef elf_phdr +#undef elf_shdr +#undef elf_note +#undef elf_addr_t +#define elfhdr elf32_hdr +#define elf_phdr elf32_phdr +#define elf_shdr elf32_shdr +#define elf_note elf32_note +#define elf_addr_t Elf32_Addr + +/* + * Some data types as stored in coredump. + */ +#define user_long_t compat_long_t +#define user_siginfo_t compat_siginfo_t +#define copy_siginfo_to_user copy_siginfo_to_user32 + +/* + * The machine-dependent core note format types are defined in elfcore-compat.h, + * which requires asm/elf.h to define compat_elf_gregset_t et al. + */ +#define elf_prstatus compat_elf_prstatus +#define elf_prpsinfo compat_elf_prpsinfo + +/* AARCH64 ILP32 EABI. */ +#undef elf_check_arch +#define elf_check_arch(x) (((x)->e_machine == EM_AARCH64) \ + && (x)->e_ident[EI_CLASS] == ELFCLASS32) + +#undef SET_PERSONALITY +#define SET_PERSONALITY(ex) \ +do { \ + set_bit(TIF_32BIT, ¤t->mm->context.flags); \ + set_thread_flag(TIF_32BIT_AARCH64); \ + clear_thread_flag(TIF_32BIT); \ +} while (0) + +#undef ARCH_DLINFO +#define ARCH_DLINFO \ +do { \ + NEW_AUX_ENT(AT_SYSINFO_EHDR, \ + (elf_addr_t)(long)current->mm->context.vdso); \ +} while (0) + +#undef ELF_PLATFORM +#ifdef __AARCH64EB__ +#define ELF_PLATFORM ("aarch64_be:ilp32") +#else +#define ELF_PLATFORM ("aarch64:ilp32") +#endif + +#undef ELF_ET_DYN_BASE +#define ELF_ET_DYN_BASE COMPAT_ELF_ET_DYN_BASE + +#undef ELF_HWCAP +#undef ELF_HWCAP2 +#define ELF_HWCAP ((u32) elf_hwcap) +#define ELF_HWCAP2 ((u32) (elf_hwcap >> 32)) + +/* + * Rename a few of the symbols that binfmt_elf.c will define. + * These are all local so the names don't really matter, but it + * might make some debugging less confusing not to duplicate them. + */ +#define elf_format compat_elf_format +#define init_elf_binfmt init_compat_elf_binfmt +#define exit_elf_binfmt exit_compat_elf_binfmt + +#undef ns_to_timeval +#define ns_to_timeval ns_to_compat_timeval + +#include "../../../fs/binfmt_elf.c" From patchwork Sun Jun 4 12:00:02 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yury Norov X-Patchwork-Id: 101363 Delivered-To: patch@linaro.org Received: by 10.140.91.77 with SMTP id y71csp495114qgd; Sun, 4 Jun 2017 05:03:35 -0700 (PDT) X-Received: by 10.84.211.13 with SMTP id b13mr9609552pli.112.1496577815418; Sun, 04 Jun 2017 05:03:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1496577815; cv=none; d=google.com; s=arc-20160816; b=XKgBKQGhSUEAl0CvmJib06dnklOm//5+em/O8r/eSYaV8M8fCoHocT4hlaPqU9cqxP ctJiPGcYaYk3cnk6OKvXLBfbMQgwdCc4nhW7rxwPd1aymA7OtvHY3qvmF9/StdekcGHk q/53rMS+Yb2KpLvmRf1IComozkmTEkEjN0TbrooQrecV+QsTwASdHBTWcLADb5HxrkOG NgY4AZkUtfApFxnDgadZGE9OPyWeiKzIvWmaHFSg5JhfCAdZrPmiWVZ4OAYex4hx2vlH 6V+P/OdmzqhHeQHTi/S21Xm0xFaSwWon8mfKt/E819LZ0o9bWEaKIbHV+SzYVG/nW06H ruDA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:spamdiagnosticmetadata :spamdiagnosticoutput:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature:arc-authentication-results; bh=AJJRbePolITYgolidYy5IgllW0fhY11cXDXXtBxn5RQ=; b=yH0QlDc4rpks0RTizkccOjWhajnTYppjQibUuxB+ZCF/B+5ycwwqM9AHdWEFN34tKr jzHWOUVS8F8qInFtwoIyqk1GtDQB7nz+EKCJpi1wn8c665o2P3Z9S91nJzITOtaHI8px iSdrA/At2dygJnMfjbT0GSivTwFi5uPCbMlD0m1vEXomBlFJCTNERXlOcu1Gm62sOetA KTM+j7DUIhi0jijwZ3656LQjwu2MEf7R+FHvhYUi493bNsURW8sTH0mjz00ohmrpFGsH Ac/51u/M5AjgHooCjjMXsIpeKgPvNNFqgodtQkznW0ZIepoHCw8J/NmS5gictSydH1rh 1wKA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@CAVIUMNETWORKS.onmicrosoft.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g25si4620870plj.529.2017.06.04.05.03.35; Sun, 04 Jun 2017 05:03:35 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@CAVIUMNETWORKS.onmicrosoft.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751411AbdFDMDc (ORCPT + 25 others); Sun, 4 Jun 2017 08:03:32 -0400 Received: from mail-bn3nam01on0070.outbound.protection.outlook.com ([104.47.33.70]:13920 "EHLO NAM01-BN3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751356AbdFDMDI (ORCPT ); Sun, 4 Jun 2017 08:03:08 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=AJJRbePolITYgolidYy5IgllW0fhY11cXDXXtBxn5RQ=; b=WK3/myuHVnfDwe9J858t1Uy/4lBQ3UNuzWnWodacMoOU4JSP1oj0anuEionfrnxrcKS2xLi44rsg/+0MlFku/96j3YTDTozo7v8n5tBfh9lCOEOXB9s6kDWI0vv1/m20nrjxwvePqsAT1Er4fhWgEgCVWW4GjKOFT6+HMpkdRYo= Authentication-Results: arm.com; dkim=none (message not signed) header.d=none; arm.com; dmarc=none action=none header.from=caviumnetworks.com; Received: from localhost (176.59.55.28) by CY1PR0701MB1274.namprd07.prod.outlook.com (10.160.149.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1143.10; Sun, 4 Jun 2017 12:02:49 +0000 From: Yury Norov To: Catalin Marinas , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, Arnd Bergmann Cc: Yury Norov , Andrew Pinski , Andrew Pinski , Adam Borowski , Chris Metcalf , Steve Ellcey , Maxim Kuvyrkov , Ramana Radhakrishnan , Florian Weimer , Bamvor Zhangjian , Andreas Schwab , Chris Metcalf , Heiko Carstens , schwidefsky@de.ibm.com, broonie@kernel.org, Joseph Myers , christoph.muellner@theobroma-systems.com, szabolcs.nagy@arm.com, klimov.linux@gmail.com, Nathan_Lynch@mentor.com, agraf@suse.de, Prasun.Kapoor@caviumnetworks.com, geert@linux-m68k.org, philipp.tomsich@theobroma-systems.com, manuel.montezelo@gmail.com, linyongting@huawei.com, davem@davemloft.net, zhouchengming1@huawei.com Subject: [PATCH 13/20] arm64: ilp32: share aarch32 syscall handlers Date: Sun, 4 Jun 2017 15:00:02 +0300 Message-Id: <20170604120009.342-14-ynorov@caviumnetworks.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170604120009.342-1-ynorov@caviumnetworks.com> References: <20170604120009.342-1-ynorov@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [176.59.55.28] X-ClientProxiedBy: HE1PR09CA0075.eurprd09.prod.outlook.com (10.174.50.147) To CY1PR0701MB1274.namprd07.prod.outlook.com (10.160.149.17) X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY1PR0701MB1274: X-MS-Office365-Filtering-Correlation-Id: 4291d74d-e98d-4743-b30e-08d4ab419f58 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131423075)(201703031133081); SRVR:CY1PR0701MB1274; X-Microsoft-Exchange-Diagnostics: 1; CY1PR0701MB1274; 3:tnjUG0Tc6elxGS9P3o8xCvoUeuZ1/IG9+z107JuVonoRIxmePKkOv/8KgtemKUEMTdpRTRFG1nAQqEpMYsEvANpBko1Jvx5QatWSPGeZKtDzxfbIuu4VAV7e5nG3OuYzI8bTat9vR6uaJHSeMuAWW8x+Ko2kfzZ91WVdRoxVYh64pbsOWhc9v+jZ2s1sayKne0bU1xFRvwVzGIaHuzCGqfNdC6pxiJKbEgfYVxvZyodU0yyllWJD40GJjgGO9qjUn2/8cPvkGaO3kfhcsAnl4b6T+lnlC/TgbXBGVDqdEDTEiSn3GsZnqRKkoAWt2hGkWby4l/f0XD+F5MI7l0YFSg==; 25:73u4rgSZfTvOHwbz7D+KOpyiiapi9PSuy2a8qjMY3vDOgY0IuWmMankyoDLqFHwC5qJkVnELiHGj8k1ZyoiH95TXM5wb7iNONdOL+/LQO+bOpxpUNTqTEjpuMcsG+DYkx7eek5QAgzcIqypeB6ieHWCqnBkg5pcDxI+/84xJnZWqQza81js3gXeR7gvJO1tA4zOiF4sN3ETQRUIwmO0HTHPM7irtA+NbQ0/NcvKswD6QIIrVfMkmSz2+miTU53Hclej+3lStW+TMViPBjos5zl64NmfLH26sTwm09WgrQqtYKEDB3Gb+45A/65bZx/9ZuWSHLPAApviKt0AY5zoIx2vDgqr2wx5BJL0uySGTr6dUTrfSmKABndp/v3atMaEj4+ffoOylU7YnyoiGvckdXVOCdIHoSJY2TYNSZQASgF7mW2V5TVyaGL5Vh8kR4tB502UjxB6kjCypFfwn+GeZ5GhiWmNlB+kRJKAgDcbaaoQ= X-Microsoft-Exchange-Diagnostics: 1; CY1PR0701MB1274; 31:sY5FNmkGRPnYz0P60VI6NGxHMLNCcZ4U22YyQHsn1QiPL0wcBE2uSbRM6LCxzMy/4vILsNe/xpI+yDqUiaKT0XQEfoQkNk/v0GvXjKA2fv4MkgoLd4ldG7NifDY3b36DhOPk+SNJi/8xaEVKSOkjfNTpzk1KZ1sbQEWLECkPwtno4dtq+5UaMdfhDRfz09nABxrTQjjnc4PFLNXQ86LWrI5bNReII0h2M9NPP53Eb/E=; 20:EhlHOEWEVQnHUkxRl5OdEiv1CfmvogbRAq2nN0y9L7dlBiSp22OIhL+lAwbt74o3l8eGetM8aQc8ZwZd0S7OvazouhqDjEcJfC4uJmA134sV8QwA/sli3BOMn2MyggTqS/W9n0FX+/T/n5nJTVz6TXaZLI8f5QaAb38hSqxf2UDnUjOM02Y4cN1BdKwH+2xxnpKm+lLHIENwJRPU2VNt2l5EPTGqOSxXzfLsprJTbDW+S9INqUJ+I+WnnXPH3XdKWq3ugmNCiS7kmrTzvb86veOgjLZFmqaTI4AjlXogWYx7qJ1LpffLHH5xxECZOY3e8NegOUMuk3fH1Rxsmd0Vc3flRwXGfxpcRQzLWYqf9R/uURixR0i+OQu/8vLXsijsMm/SvdfDloIR5yTPF/bhcM6ZF8OQJeM7DEni/RCZV4FEZH7FkW90QY8hjnTUiRW+q0l3nDfGHn9CU71FDfOnwB00YChZoIB5JcAnF+SX4SeNd8nhhTbYvBNroI4vVWnHjErd21WpKFW/zXjF66srUYjI5V1MjGuiYNJQHu6E12Ix2rCuX7CBekdsswKjHn+pQH8uvyclfZzk2DFh2lPjFgYiwqFmhGxeHvTYSEmmeN8= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(250305191791016)(180628864354917)(22074186197030); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(93006095)(3002001)(10201501046)(100000703101)(100105400095)(6041248)(20161123560025)(20161123555025)(20161123562025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:CY1PR0701MB1274; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:CY1PR0701MB1274; X-Microsoft-Exchange-Diagnostics: 1; CY1PR0701MB1274; 4:A4DIYkIl+APxO3xfPLgGBh0omAUqhTX2IO8g6PonlOPGRsZ6nP0/rJAv4E1zVMFrGotRDYgIbDp0jug6kak7lsg+jIxJlDVazHzrGIpVwVxn+fX2ZqiQTFG4fsqd7V4da9VEAQdIK1U/bJUMpZsBiOCLWR5cJ3SB61NqSua6uLMgLPXD5m9fVaxKICwKkjp7c46qeaHrC5WFJ9RFb3yq+CiMCp/Yx2kvvNFtePLaOaqlFSYA3LCY1xqhEb1HLumOrmM1udpm/cY/vPQSheiGpnC2o0zejYDHbfzPlhdaUWYIdDWCnjulTMchK6TiUKXUMY0RIqxhI9j+NsCeB7Ro0ZuTV+JL19kGZCLhvnNN6SLxp3fQaIXC+xIG59CLYlazvBHQwXnv0fAdyJ9wj4Y3180wkc1taO5PvzU9QRbiqvPxXPD22wkHc0tLbkGFvWT+/w3ml8pd7Z1AJcm5KDjyTrnKGP9sbdGhE0NdNH4AwrnwEna/4Qf0cmeVpM5gvuZ8aORF1Nf9mRzzBvCIS6GDYiGFhT2wsz52u6lbEbjyLxbM00rTLJHM7DuJZiAaLFTXM6L7rVGtS3pJ7IVjwlSeQglqXi83IfwvWps6VpwqTi8mulLjxvVjNfUZTbarhEdBrnQ3/kW3A3q/7FHucHVYPTkzFJAzA11OCjM0q9BjsPaFOk/fNnlg+dByxTHhItPwjYfM9kT8ndZflj5CYJPuSffg4JQZ0Oet9JpVhy07m6P+LBh97bzqoqZ9wr6so3i9HP7MOAnOJD+rNinJ/U9bwwR1jwGgKjetdzeB/qqEOCUxCG2nrt2fOemP6aOpLuDsM7I+bs8ei0D5Ck2ZiRsRreY4y0pZMBBYi/AQIEyWlXYEOwmonAyM/4dKeoUDIzCjq8L8ZCY2mmQHkj/NYDBklZhrSx3mxtaw39LGW/t6XMKusufjP8ZK7q1k+NBa9kKrw5U0JvVw91BZeEHyHF6hZ8dF4O6E1vavBUrDVZwXHLlDwMMyLHubxkj6mtp+jYgSMMQ4t28qiyivlQrraBO8UiJtUfqsX76SZq18OrEBuTKldydRZvNq2ah4zAvSkxnJOVp9Xg9c2odogiSHVg129xKepKsM8C9GJEYuGibgT6b4YOBLIRglHiHos6HBJRieLOFZvK0a81Q145yzQXggG8fvO08S75+S3YFyFVeHBcCalK1yGrx5G/i//Mf6eUE55p3xRnXQW3NHoBmA1szEA+Fc062AL4k3KaQkLOQ/9dk= X-Forefront-PRVS: 03283976A6 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6069001)(6009001)(39400400002)(39850400002)(39410400002)(7416002)(3846002)(4326008)(6496005)(6116002)(1076002)(38730400002)(76176999)(5660300001)(25786009)(72206003)(2906002)(478600001)(50986999)(5003940100001)(33646002)(305945005)(42186005)(76506005)(189998001)(36756003)(66066001)(42882006)(6666003)(2950100002)(6486002)(6306002)(48376002)(50466002)(50226002)(53936002)(81166006)(47776003)(54906002)(8676002); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR0701MB1274; H:localhost; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; CY1PR0701MB1274; 23:7giLwfB5YIuIRb6oGNAZLQJ/CrIRmj2Z2P7UI5HLMJua2XjloVX0uPfpeiq23OmgZPf8eW3hb+nY62s/YCnHh7Dw876E4yX77JGjDXONynhhx9KIYOfYX0gic089Hix0Nn1meztAkYxm3ikdlaNcaNLvuzLF68d7aZS2g+kHOGF6rbFtjW7KCe3bPfruCKLW9DYDMbdmRpBgyzNAajoJidEpum0CNtth3Hp7dehFgh0GwRM/4yXR9kyaPRnPDB6KVK0BhbsZcbK7oyPrwwjnPssK64+oK+LXudmocRjypXz2dbQ5QS6nDX/TlK+FI4ss79ZGL7M0BalrgRT1PKL/+mZ2nR3ziZkFiWDWBjw00tLUUGBwcCS/VvRFvZ6iUnH23pGRwl8OeSmhCqLbZ0zTXMbjmix9aB2vP/a0FitA1OrvGHJ0/IFx1o6t+QJvCkgY/9i0KhereX9i1mVv35sJEAvHQdi5lAxfiZM2xUI6yMMSZLqm7pTx29T13UAbOtvwF3ktrumjxl6o4SLr1blf06aXJDZiymaUlTiygPy0StPGT59BzoMyTZt55cOuLkWNkFmKVRT1588Yz/nMBgWPGYIJSLGRB7zPfy3Vdmc1Jc+gbl/2Io+SWujFp/0nPwZ+ZQDuVwF6E9LdLjI6Tkk1JIlps7Ty15LB5Sayk6tun7kXHU7fitxm0XelBvD67W9xptuFksRZweCM8fgej7zg//qHkTdcbH+XhNMdGD5898awByGb9A6QJoghyrGn/lVAqEjf2dKvKHF6nAXijvodNZUrAyMk+i9WklC0LAiht4jaLQn2kBr09n/JiKOpGi7PjAT4NoqUWA8N48Vv/4R22cN9kgeGgY9Y4Ds/5Fz7Lta6vkgT2xifkZ8AtDw794Twi46YihrYRwCtcy/oIL7QIdBesGxFWSOS8KyBXhB5QdzpFRDnRwgDpAE/ykBSV4g4jmwB/RZG73jvwSxCygc4rEUr4zrgd4J0zd+VmQGd1G6aubHUVXJxYQPVFsijDxOMF8ejr/obuhetdIFlZhYu/A== X-Microsoft-Exchange-Diagnostics: 1; CY1PR0701MB1274; 6:PLrRVtEbPNytfk+Kik03EPgeZODuWtTxBt6JgbgDorNxT7oC34nMl4q5fjkZg/Pt+dw3pAvkmjvCRx9DMbiNiKPbhCtXGR1WOtLas/VoZl3DJtLan021mQZkp4U1HSimWzFlCHr81k+IqAwqjtHQr8L+kNtlzuCc1MzDpIHeRCyZN2sjpr0NUizcg/pznXnGNDwzFJ20mjPnBUf4O6ijx8bU/kCCqiCJ2qPHphi4gAs4KGLRcx1vMBxNebOYBE2LzOFMv/8T6dqvyw4Js2b7jOI7hWj0vZO9XBYy8gt39etkkX/kmlCVsAQyLrmat28va8vczGPUjdyIckp3ZaLgJKHSbGmPETG1JzETqb1UAYDv67s2T4pM3dMLKf/OsfvHz/5ivTwSRHbQmvnx2V4LMMt75cdqsgl/vrKzunOnuy14N+h8a0eczm3gJ0YuAHL3vNzpUupnymdlc6jmSseBiW7jui/gK2NsaljrQ9wz7beqCDJqKlJbs72yoQ9Z8vLONxv3As8YZkqnkjHavSi+fw== X-Microsoft-Exchange-Diagnostics: 1; CY1PR0701MB1274; 5:jJ9ewyeBn/5S7mlb/neQKwofTpq+9THe6u+6ppj18O+iIkiNJzmzSVQssBfker62sQ1r4RFgXgFXFWMhyFqCg33FsLRROys0pR6FAtE+Uur40NVP7/cC9B/qonuOdHamlRPwQgxSudb/Ng/3Myobnha+m3hpMxXP5BpGrVM5KqJOPQsalIweopot0m0D9v1trxis0o1GW9Nj/LbFeY1scD8Tjhyu2kDSI+I87sqRXYcIYM2i4lT+5YWV7cReS7LecG8kV2mMLizyse59EEsivxdYcskKQxcE3T0RN3wvg45dho74yhS5j2mOR5ppzAdkWcQ09WdG+EoqcMI5v6fb2M3PP5X3Qd42RXNgGGsJ0Ve2/ZeYCkyEGJ7VUyZJr01un0H1IAEKt9LC93QL/T65GmTVAK2MnWbq95ju3CH6IYQEZvu+mJHStYRt5zS96RVbvsdZDzicox8Bs5R3rNJA/xPoc6jomehabqm+aIWk6NaNzQByUkPghBAxUyCgTtt4; 24:1DBEM9c3TFaEpxbx2C7o4wF7gjVwh+WdnGlmGDLxKRGCHEh4TnLJriHtPILdOWO5BAc+kqk8eRIQcPiiyNvDfXQmwjvK1yIAhwIZ6XvBObc= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY1PR0701MB1274; 7:8mxM7W67C75YSL402sNM+GlnUqXwQ/MbTq/dkJHuL1/9+N012RM5ociElOGsaP+J8OeJRVEnO18PQ/VnxyBRQGTdDtzcuE3az6j5jZxWekruMhlVLdXwQc0IcgbgPFA6229W64axKGeKyAzebZYSL1TEvr1PmZrVsTIEe8tc+vC8P7lhlfA52sTycmr/FHTfzqS7A4+BC2+IssZmj0XzRfNib3jTMT5SJIFYsrH5xbPxqFu+xxOCehw1wAbI+W9BHJ+hTWOU37aL453Fz6qtucXRJd0zGENRimRQIexW/E+o0xMQ2C9KMMhbokayedyiMtOXyNpZNOmHgJEGuqG12w== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jun 2017 12:02:49.3040 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR0701MB1274 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org off_t is passed in register pair just like in aarch32. In this patch corresponding aarch32 handlers are shared to ilp32 code. Signed-off-by: Yury Norov --- arch/arm64/kernel/Makefile | 1 + arch/arm64/kernel/entry32.S | 80 --------------------------- arch/arm64/kernel/entry32_common.S | 107 +++++++++++++++++++++++++++++++++++++ 3 files changed, 108 insertions(+), 80 deletions(-) create mode 100644 arch/arm64/kernel/entry32_common.S -- 2.11.0 diff --git a/arch/arm64/kernel/Makefile b/arch/arm64/kernel/Makefile index 5ba41095c466..f6f12e2e5010 100644 --- a/arch/arm64/kernel/Makefile +++ b/arch/arm64/kernel/Makefile @@ -30,6 +30,7 @@ $(obj)/%.stub.o: $(obj)/%.o FORCE arm64-obj-$(CONFIG_AARCH32_EL0) += sys32.o kuser32.o signal32.o \ sys_compat.o entry32.o binfmt_elf32.o arm64-obj-$(CONFIG_ARM64_ILP32) += binfmt_ilp32.o +arm64-obj-$(CONFIG_COMPAT) += entry32_common.o arm64-obj-$(CONFIG_FUNCTION_TRACER) += ftrace.o entry-ftrace.o arm64-obj-$(CONFIG_MODULES) += arm64ksyms.o module.o arm64-obj-$(CONFIG_ARM64_MODULE_PLTS) += module-plts.o diff --git a/arch/arm64/kernel/entry32.S b/arch/arm64/kernel/entry32.S index f332d5d1f6b4..4bede0324440 100644 --- a/arch/arm64/kernel/entry32.S +++ b/arch/arm64/kernel/entry32.S @@ -39,83 +39,3 @@ ENTRY(compat_sys_rt_sigreturn_wrapper) mov x0, sp b compat_sys_rt_sigreturn ENDPROC(compat_sys_rt_sigreturn_wrapper) - -ENTRY(compat_sys_statfs64_wrapper) - mov w3, #84 - cmp w1, #88 - csel w1, w3, w1, eq - b compat_sys_statfs64 -ENDPROC(compat_sys_statfs64_wrapper) - -ENTRY(compat_sys_fstatfs64_wrapper) - mov w3, #84 - cmp w1, #88 - csel w1, w3, w1, eq - b compat_sys_fstatfs64 -ENDPROC(compat_sys_fstatfs64_wrapper) - -/* - * Note: off_4k (w5) is always in units of 4K. If we can't do the - * requested offset because it is not page-aligned, we return -EINVAL. - */ -ENTRY(compat_sys_mmap2_wrapper) -#if PAGE_SHIFT > 12 - tst w5, #~PAGE_MASK >> 12 - b.ne 1f - lsr w5, w5, #PAGE_SHIFT - 12 -#endif - b sys_mmap_pgoff -1: mov x0, #-EINVAL - ret -ENDPROC(compat_sys_mmap2_wrapper) - -/* - * Wrappers for AArch32 syscalls that either take 64-bit parameters - * in registers or that take 32-bit parameters which require sign - * extension. - */ -ENTRY(compat_sys_pread64_wrapper) - regs_to_64 x3, x4, x5 - b sys_pread64 -ENDPROC(compat_sys_pread64_wrapper) - -ENTRY(compat_sys_pwrite64_wrapper) - regs_to_64 x3, x4, x5 - b sys_pwrite64 -ENDPROC(compat_sys_pwrite64_wrapper) - -ENTRY(compat_sys_truncate64_wrapper) - regs_to_64 x1, x2, x3 - b sys_truncate -ENDPROC(compat_sys_truncate64_wrapper) - -ENTRY(compat_sys_ftruncate64_wrapper) - regs_to_64 x1, x2, x3 - b sys_ftruncate -ENDPROC(compat_sys_ftruncate64_wrapper) - -ENTRY(compat_sys_readahead_wrapper) - regs_to_64 x1, x2, x3 - mov w2, w4 - b sys_readahead -ENDPROC(compat_sys_readahead_wrapper) - -ENTRY(compat_sys_fadvise64_64_wrapper) - mov w6, w1 - regs_to_64 x1, x2, x3 - regs_to_64 x2, x4, x5 - mov w3, w6 - b sys_fadvise64_64 -ENDPROC(compat_sys_fadvise64_64_wrapper) - -ENTRY(compat_sys_sync_file_range2_wrapper) - regs_to_64 x2, x2, x3 - regs_to_64 x3, x4, x5 - b sys_sync_file_range2 -ENDPROC(compat_sys_sync_file_range2_wrapper) - -ENTRY(compat_sys_fallocate_wrapper) - regs_to_64 x2, x2, x3 - regs_to_64 x3, x4, x5 - b sys_fallocate -ENDPROC(compat_sys_fallocate_wrapper) diff --git a/arch/arm64/kernel/entry32_common.S b/arch/arm64/kernel/entry32_common.S new file mode 100644 index 000000000000..f4a5e4de6201 --- /dev/null +++ b/arch/arm64/kernel/entry32_common.S @@ -0,0 +1,107 @@ +/* + * Compat system call wrappers + * + * Copyright (C) 2012 ARM Ltd. + * Authors: Will Deacon + * Catalin Marinas + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include +#include + +#include +#include +#include +#include + +/* + * Note: off_4k (w5) is always in units of 4K. If we can't do the + * requested offset because it is not page-aligned, we return -EINVAL. + */ +ENTRY(compat_sys_mmap2_wrapper) +#if PAGE_SHIFT > 12 + tst w5, #~PAGE_MASK >> 12 + b.ne 1f + lsr w5, w5, #PAGE_SHIFT - 12 +#endif + b sys_mmap_pgoff +1: mov x0, #-EINVAL + ret +ENDPROC(compat_sys_mmap2_wrapper) + +/* + * Wrappers for AArch32 syscalls that either take 64-bit parameters + * in registers or that take 32-bit parameters which require sign + * extension. + */ +ENTRY(compat_sys_pread64_wrapper) + regs_to_64 x3, x4, x5 + b sys_pread64 +ENDPROC(compat_sys_pread64_wrapper) + +ENTRY(compat_sys_pwrite64_wrapper) + regs_to_64 x3, x4, x5 + b sys_pwrite64 +ENDPROC(compat_sys_pwrite64_wrapper) + +ENTRY(compat_sys_truncate64_wrapper) + regs_to_64 x1, x2, x3 + b sys_truncate +ENDPROC(compat_sys_truncate64_wrapper) + +ENTRY(compat_sys_ftruncate64_wrapper) + regs_to_64 x1, x2, x3 + b sys_ftruncate +ENDPROC(compat_sys_ftruncate64_wrapper) + +ENTRY(compat_sys_readahead_wrapper) + regs_to_64 x1, x2, x3 + mov w2, w4 + b sys_readahead +ENDPROC(compat_sys_readahead_wrapper) + +ENTRY(compat_sys_fadvise64_64_wrapper) + mov w6, w1 + regs_to_64 x1, x2, x3 + regs_to_64 x2, x4, x5 + mov w3, w6 + b sys_fadvise64_64 +ENDPROC(compat_sys_fadvise64_64_wrapper) + +ENTRY(compat_sys_sync_file_range2_wrapper) + regs_to_64 x2, x2, x3 + regs_to_64 x3, x4, x5 + b sys_sync_file_range2 +ENDPROC(compat_sys_sync_file_range2_wrapper) + +ENTRY(compat_sys_fallocate_wrapper) + regs_to_64 x2, x2, x3 + regs_to_64 x3, x4, x5 + b sys_fallocate +ENDPROC(compat_sys_fallocate_wrapper) + +ENTRY(compat_sys_statfs64_wrapper) + mov w3, #84 + cmp w1, #88 + csel w1, w3, w1, eq + b compat_sys_statfs64 +ENDPROC(compat_sys_statfs64_wrapper) + +ENTRY(compat_sys_fstatfs64_wrapper) + mov w3, #84 + cmp w1, #88 + csel w1, w3, w1, eq + b compat_sys_fstatfs64 +ENDPROC(compat_sys_fstatfs64_wrapper) From patchwork Sun Jun 4 12:00:03 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yury Norov X-Patchwork-Id: 101365 Delivered-To: patch@linaro.org Received: by 10.140.91.77 with SMTP id y71csp495273qgd; Sun, 4 Jun 2017 05:04:06 -0700 (PDT) X-Received: by 10.98.194.66 with SMTP id l63mr15314139pfg.234.1496577845998; Sun, 04 Jun 2017 05:04:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1496577845; cv=none; d=google.com; s=arc-20160816; b=J+SHtY126ApSpdXjth9Demxgv9UKaIUS2z5Q97JxIvLS/fyCtnFZ7BLt4YHWjOZlmY F1LiLm1Q3embp4LboGi9P3wljiW2FLoA+HwexdYl+3wt7nfHaz77OaM//BT3hZD7+NOu ihVc2izxHYLEL3s/0YaTwn3S0SEOOyvS7uh0EV2L1TxGQBOAZsFgJMLpSvetlSmS+Yb4 vxJdYWLiClUgUH40KMoUMLvwAaCwGCvKVCj4P+t1P8stWYVjy9lkgo1ONq3UGL2h+RQe A7fp0837IXufdA7HtzLBas2SvSv2R7wGdi8NEk2SvESHtmuK0y1uJhH7wnHT7+g5y4G0 g8YQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:spamdiagnosticmetadata :spamdiagnosticoutput:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature:arc-authentication-results; bh=hPpLTqp/47YfvT4uN4/dNWwFn0EyaWwTUQC08hOF6Ow=; b=pAcay7SS6lGoghGxVRHlg0Eaqnj2IWXbxDfU4HXAZ940fGWXYa6vVFD93NMPkWt9L2 pXiyOWBCNDmj0SfXhyuusqir7QQN1lfIhGYOocyHpdU6lgef3UXE84RQCwKUDNScBqbo gFmVdk3bk6t77+66VTgjeBDcXygi/+VAr9AeAWnndHrayUWdZGHKdfR3CxYBigJCBsxw 3nseFE05xeTB40tLh+RJdnglZDKyHhXvWKkwL499UIHnkRSf1MmzwhScA/S7VLMoNOw8 brtO1wlo2YU317VsSbCX7B4pi9+w1+SeR5F4Yk591VdnOV5dZnnSkO5QiRTpeocZ2WvD dsIQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@CAVIUMNETWORKS.onmicrosoft.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g25si4622106plj.529.2017.06.04.05.04.05; Sun, 04 Jun 2017 05:04:05 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@CAVIUMNETWORKS.onmicrosoft.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751423AbdFDMEB (ORCPT + 25 others); Sun, 4 Jun 2017 08:04:01 -0400 Received: from mail-cys01nam02on0044.outbound.protection.outlook.com ([104.47.37.44]:9220 "EHLO NAM02-CY1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751178AbdFDMDV (ORCPT ); Sun, 4 Jun 2017 08:03:21 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=hPpLTqp/47YfvT4uN4/dNWwFn0EyaWwTUQC08hOF6Ow=; b=ESrIltlgGJdgmd60t7x5IjXOh0vJbmSMJp0qZaSoAhWn8gA4g+SOTS0+QOCVq+rp9kzMwQ29Ggf399fLC7PP3Mc+JiwxYFYu+jDrFUoZHOFmvSCBedRRtwuPsek/T9AO6yHadKzZLfo+o5cS1CDZGSlxPaZ/XOaxLAJHbDk0IrI= Authentication-Results: arm.com; dkim=none (message not signed) header.d=none; arm.com; dmarc=none action=none header.from=caviumnetworks.com; Received: from localhost (176.59.55.28) by BY1PR0701MB1271.namprd07.prod.outlook.com (10.160.108.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1143.10; Sun, 4 Jun 2017 12:03:02 +0000 From: Yury Norov To: Catalin Marinas , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, Arnd Bergmann Cc: Yury Norov , Andrew Pinski , Andrew Pinski , Adam Borowski , Chris Metcalf , Steve Ellcey , Maxim Kuvyrkov , Ramana Radhakrishnan , Florian Weimer , Bamvor Zhangjian , Andreas Schwab , Chris Metcalf , Heiko Carstens , schwidefsky@de.ibm.com, broonie@kernel.org, Joseph Myers , christoph.muellner@theobroma-systems.com, szabolcs.nagy@arm.com, klimov.linux@gmail.com, Nathan_Lynch@mentor.com, agraf@suse.de, Prasun.Kapoor@caviumnetworks.com, geert@linux-m68k.org, philipp.tomsich@theobroma-systems.com, manuel.montezelo@gmail.com, linyongting@huawei.com, davem@davemloft.net, zhouchengming1@huawei.com, Andrew Pinski , Bamvor Jian Zhang Subject: [PATCH 14/20] arm64: ilp32: add sys_ilp32.c and a separate table (in entry.S) to use it Date: Sun, 4 Jun 2017 15:00:03 +0300 Message-Id: <20170604120009.342-15-ynorov@caviumnetworks.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170604120009.342-1-ynorov@caviumnetworks.com> References: <20170604120009.342-1-ynorov@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [176.59.55.28] X-ClientProxiedBy: HE1PR09CA0089.eurprd09.prod.outlook.com (10.174.50.161) To BY1PR0701MB1271.namprd07.prod.outlook.com (10.160.108.17) X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BY1PR0701MB1271: X-MS-Office365-Filtering-Correlation-Id: e7b311cc-fadc-4bdc-60ce-08d4ab41a6e2 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131423075)(201703031133081); SRVR:BY1PR0701MB1271; X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1271; 3:mnjByDfQYWwdxGJ4xLlOaaJs6hh1w0hCrcb5WOniLhMFE/gVfBzbD3pxKvWIQE6tXo9VsBTrhce4aSYMYmkti1XL6Yt6iy6EL0yh1F4PbOvWKE9Q4zSJUuIx7iZClYInXVfbKY4ZJkuDncM6s1Q2edrmWHMJ7RYl6EiaY1h9R91nVlNggtKT0qib6l3oReiOHMYLviEc0wPXpd+TD4xlJMqnnPqMqLEFno7fDRqiIuUcsgZz6DUrm3D4b84QtSA7+e4ehcLAXEWHkCHtiOjuBBdy5Sg6FoK1cPlVEnfjHjvoIF/hT5qdtTlLJDT95LrQsfaIhLXPC4tle6AqF8wAyA==; 25:I+ziwEPsGaFGTwuEZ8NdfplNmtOlWGtwfcou90QUQgV+Y6PDMwTk2+dCYF4LAqof/PAwsRjDJbW3b3CytBzDlemfxwWGCcvGGU3idD1f2ilDI7Lle8X8Q1GeFdlhaUc5RBQ8lboPBHhLppRjIlGOETcIF6+WSsjbaUULj9BpCU/6S3noeRh5G6koU/Dj5z86GyHr+/qDh0fPerAp50GRqNNBkPlCoqoHWWtJfAaP1sM1iNYNn6rohhULjzmQs/b2jXIrbN/dXRYDEWjKul7E9ehWFDevlhIMFbUJ9IEr/8VSFiZTDiTF2qyqaRtzReT/G0h80IdVu1gaBtAkmYS8B47W25By2zGI3xpON+SVb0dKuTXO5xWHnl0YaKJxCDm/7Zyj1lOH92xOPLNCKkLCoD3wSV1ExZ92q9s3pCqgI1ck2BFwvBLdGLEqpT+FudL/Mi1a2aL2T9BwonoY8ZZYtP7e9zCgad2CJTv4bgmR684= X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1271; 31:JyDXcT5JADxLLAc7p3KyR+CLH2b+B6kk1XJHhu9bCTuxsd+sP9tVeUTe94wgeZwV1zuUNbhMy9KfAu4mgI4DEWvTCNZ67IQiy4W46AILkBmnnUAQcEdnv8/P09cxqF12LD7bQV1qsSF79C5B1v2Pg/Ro46cQpWidTSUHjCXZeJ3WfzCZBUkodIqW3IiZsDzD4MllgxMf4U1jIEOe0El6x64dQQuE4bZVOYj7UIB0RC8=; 20:kz+oBxGIboZhZ5+b8svGSZ7bnSnOEgkJzo7DQ+xhH8+zAoBQlI68BRRGzSmp+z8+yAYgHHg5KdNUe+9FInTAKAuQaBnCKdxPEwOw54cnGxpcxf0jm2oAm6yPrY/lG+ck3CL9rOsUN+47ad5b3gA3aSAMDG2GOMGGXLTOddSPMyF6Rm44zOdHKLC2BvnPfd4nee4mkDmhHckkhp4cTAdM5BqAVCmzpKy3l1ocOfKOQMV5jtRg5tktgMiUWuVowYFFOkk9sk1iIflfQYutpYk0wd2mgp1xVkbSncaTyShkoTppYnkQxDNA5ITI+XTELedRE1h8bZJykBVC1C82IrU/Em+ltfSHwUxnTIe8IBsDNJrgK1ZeLk/3LfSUOWQFRBqknAVMgn2ez7Tki7qXGkJYHOpSTLr2sKBXOBp29h85bPWmYwnDfE+Qp/vZkuUHiJuBZyYfwRgfMzGs9jK2nbf6zXkVAsFRJ6L8PQVe2vU193AqIHS4hRYcXC8upLe04gK1lZPkvWCQy+Z0N8zLLJKBhKF2xuKLyzt9mHNB99Cui4vHzPdY4dl+0GNVOJElh2TU714qRID8q44Ys2Db3EuKTo97prqOgfzVfFgZPbXVCZ8= 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)(10201501046)(100000703101)(100105400095)(93006095)(3002001)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(20161123560025)(20161123555025)(20161123562025)(20161123558100)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BY1PR0701MB1271; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BY1PR0701MB1271; X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1271; 4:lDQpHhXlYGTO1bdHK1ZvboxM827S+h4k7LdxU2pPkz89lDhy2R6EZVVbkNzKNeaYnooNrWpq86ceZlUCskYAZhp4gEhYjp7bb6lmVcFT2yGfJU6EjxRYQ0iGUJnll8liWThnO7w9d/jAkjJzx7F5Y7Y3QRPOLTTeraoG5djAN8FbNyklRBrCUY/HJ+CYCgr17cH8ViBDOl/SrKMKPQL+lUXkkTwQrFIPt9xps57Z8iTg86o8xM0k13u2c2i7r8A2N32tEGCtQ88fChmhQGH+L+pISd01Oagd0nEIhH+OiTg9lE0H+/49UAfxt1FStzgmEkRzBzhF6q7SIxJ4qu4UjS1ICyr1ZcjyTgoYh32SS1rDXQGwRLG/BNWUs8deO444X4g08zEWH5KGDmBmrKQ+nQ9lmn9h612jwh/9jwNM7Qlukk/2BYqW6bT35W++lSAjLV2SAq3zL5Zb8HeQ87dromamF4nRgLVmjVjoAxODQN5wguww/CjKc3M36ecfAoLv+4AFbdMNcJKV1dPySDkPbPqV/gHaM9/218+e2bUh6Z2J9DrUxZe4kTvcyWP2/Dc+5+2GapzSfFAcFbSSgzdkWAfj+l+2sHb4S4a+6ycLtNPnq+XtyYtx1yzAMoyilZToEZ/HCCzNM9RgVqVyorp/znwbMyjafDvGPHfX04Q6AlsKzk3A/Xt5jHnKhcCLL4BfZ+rIjIH64Wqe7d8joR2H6FpfUtjx4RDhE7iX8uzNdUsqwJvvHoqLoRXDqhTiEXvP9lZmmkasBJC5AaahKlp7ov08x4Uz79jMCJrvxoQ47C3y4jMVA3+03cT+4TQvE9b660RChk7jKDp12THKC5QkMxRPCsAYltoyLtjJBAPrRdWiPVGwUqtSB7Ibd8IXW4ooTPWTLQi9aOMasTp4Ta778n4aUOKkEVC3CD6L3ZhlykJh00uVszLNxcgK0mNaIMS6FLq+Sd7Z+UGc5Qsv9XIokqcWKK9m6Y4bS1XnLpBPPgwsRu0IGh08Ha0KAkPyeF/DnCwBsag6UCPaNmHcrjgdKFx8GwRfSwZ/u74ZylpO3y8jpVuxPRAvltKBHKDuodBfPv29kVGeoYNBIDBtMFlWKw+7CPM+s6FpQZt09qYJpzYJB2NV/RszFZ70vYX4HYRVC1cMoLIs7FfFd9TlRg3EfLRwfWmnCSRz1NVLQFAj08muNck5KXmZpIPB9NbA1KKh X-Forefront-PRVS: 03283976A6 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(6069001)(39410400002)(39400400002)(39850400002)(81166006)(8676002)(76176999)(50226002)(42882006)(2950100002)(48376002)(50466002)(50986999)(33646002)(47776003)(5660300001)(189998001)(305945005)(7406005)(53936002)(7416002)(36756003)(76506005)(66066001)(42186005)(54906002)(5003940100001)(25786009)(2906002)(1076002)(6116002)(3846002)(6306002)(6496005)(72206003)(575784001)(6486002)(38730400002)(478600001)(4326008); DIR:OUT; SFP:1101; SCL:1; SRVR:BY1PR0701MB1271; H:localhost; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1271; 23:zAGw3Znr4+vwr5STLJUVamPkfqFyqbAXnBEj563O2llHnCd6O3dAdftudoWeYCaIZRMjYXSCIVzHOdrX2P0te/eq48LJmRYyY8s+6ajjfXCcawumDCGxnOKF0fOQ9WwXbQL5ImxUovj6LuA+6kFN0VOMcNBKBpj1YH0pxy5+a8FMEyV2sWx6YYJ+tcZZzsXS7XiZ57zgJE6uYH9KtqmVD+GUZBdM74C7A4CFitmdqkMS9JWkj46GdeBw4YAq5ZRNMyiqr9fzY3s61Q6zqgZcyF4lnNz3s0ucHg3WpixR0Ilp/2Ny2Fp9VoZ263Vp3v3sBI6wwVWmC6mDvATirVNBtXfnUTtwcGSNX6SgM3Ph653Zlr5RSB2ntYnDnTtE7a1eoJ2YeDEEVL9G0r82MgeXBDxQzHocyq1Lk9/F17JCQIhKk3zIzvhMfEU7Ijoei9kXzF8z94U+GZtYoXpccYGiW93Y6XbllkTl2h2IJoOwDcq0vEoizuWYSUJgZq8wxUe1SLVk2hmmXGIhfj560tT/cuYuO+dJnDfRdgfUWfgDwscN8ztHdXBrstrlIRwdTgRc8qfv20kdj6zcHIgND0JwB5Xkac979X1XMxdwH3BpJQ9a//R08Am+2nc46aqIct+H/+KFVbvQUAxXE/hQtkYOsbjXNfWa2j2qOm6+sYLLy/fE8nEhiabZ4DN3xrL5ljG0Ax3OFt5rGIBNtGld3OqUjbH/afnn+E5GVWJb0yq99RzqLDfvZX5/Eetsirl6dnRiaasdE7UY097tzw3z+KWoQtG+MLvWCHifLeIzjm4VqZ0kagAwICR1+I4es3kHQRIPgBnwNzPlUj/boglcKPiEnXqcja2nwd7eGYFy09ap+cd1lK8pNr53ZLmftdlrq6bgV8L8xXS0s1XWU4gC8X8U3Dto5uqVLTktEQ+YQQJidZ7TyRy7qh5xuWVLl6cOlUHnZwqTW72EVKFNAuIF/jxs7a7d2K4upaVzSxG+ZzSGJE5qXb8QH7TNwUafmOj0JOplP3TH03QqEBH3VBmDemZTt53KRvGVO9V6fgRxGbX/jEA= X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1271; 6:vz1Fl6r1soKHVTnxqdH/XhC6NJtXKfOQiYIo2aOmcyoVIy3/aG6lIF6NUMATxTMnxGtUDA1OPPbq06N6pmvPIN4D+RufzoK3JM45TcKkv7/pyrTmeKHXh9IBlvqwj5RZX4lMgux8XwO3euiDUsWLzR/goaCXE7A3OQQfdwgFQukCMdp6GRlq5Jp+cb1cszmCuwDVa7VjazLoN8GMX9LG/K9FlqN/+QHjvFmvfJO53VM35zBcgWYq4WRS7kVcu4DuVdrOs1hUHN8lzIVW+95cLllG/ZPl0cpQubgyS6UvAASGm6Djpt0mIkGMslucEcMg0fKniKKQ6/0+6MeBOYJ+/M64L9AjSUFGJmuO+NIytWiS/xwotKftBVDUfdPpUgNSdtSxLSbI4m/LyUNfk5D43Ofuh/KIv1irXVEViYLMoGZESV3BpSgCbokStW9IMXSBkc+uXrfAOcA1W62oMXr3CnVc6QYZlJOPN5Ut8Fbn7vx9KNnup77x71+tBuBuKFC/bzOOKQKIjHHSnRvb64fN/Q== X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1271; 5:tfYq0JQmML6AS8mjC1FamBvkrBh0CQH5n4/S1/Rf4Wf3xywmvwTeA7XOjZ90ZN7LvOzOq8jv+hA4CnbeGCkFFliVTDP0ML7v0k1lUwEzIJ/9q4qWfuOMeUE2ixJN/DUJcK8YSr/t7utB9Y4RdLr7HG4H8b+6cT9QxijT2r5/UBxuG9+OPeK6sPuCR0LwDrbLDiFtl9TMEoRt/VCvgmwN38OVeac6GnBPuWjYB75mw3G1RpOHRuSUA40Q+4i6hYLYt7yDKAmT8Xdopx13VnVWtwMOgGHVIuDSIcg/RBiBj10kJRyOGQRlavMc3vfm1wpKnxwf9gUrXoDzUE2NmWp2mSQ2xDMBXAHItBxZOe/jBi1Q9Pjx3k3FiJkO12RYczBCKa0QOOiEt/IiC2CKZmXUgXXNEj/3YvXQ2ln1Qtz+QPRdH24pIZ38ptucPcSK2eAc+v4oFSWYehbAhjxaN3pXXe+KSJQocfQ475IR6MJy1wItmMGIpxXQoTkexjSTfT7t; 24:ZSYRL6s0L7k1AnqIYI2NRnsKgZW7j4cNOlqUJE6nf4jDfI2CdeR6wZTCBX+3OVqrgV2Yxbs4DD2x/Zy07lJ9eKY4zmimcMRvL8hNAsprZ10= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1271; 7:MpnFGxZevmGxibgK2V53sDjTHhEEb8tpPzMDYB7Oi5OmNKXKtNtxOOtSTdobj1xei8n6ZDgmTGhHs6cu1AMFi8eAVl8KC+ePQWNNTwmKg1TNj1OR1xRwgMLmfyHnsGvxm9v0pbtLxlJMSmkKhgAPUUyYfGtTbn94Vf1f2HUORjDUVcxnwMsg00jj5+aru104wxArnk3EU3gKvNWlJbWcf/U05vi26CCfj3g7J09g92XCS9pcrSrBqXHfxOt4PyloxotRw9vsnaN0We1BACm1/IMksQuU+4T+LIEUtKeJl6Dqzd0gz2fwHl88s6D713CVRuOWdO/XWhAEqIhnWV9oxQ== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jun 2017 12:03:02.1222 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR0701MB1271 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Andrew Pinski Add a separate syscall-table for ILP32, which dispatches either to native LP64 system call implementation or to compat-syscalls, as appropriate. Signed-off-by: Andrew Pinski Signed-off-by: Yury Norov Signed-off-by: Bamvor Jian Zhang --- arch/arm64/include/asm/unistd.h | 8 ++- arch/arm64/include/uapi/asm/unistd.h | 12 +++++ arch/arm64/kernel/Makefile | 2 +- arch/arm64/kernel/entry.S | 28 +++++++++- arch/arm64/kernel/sys_ilp32.c | 100 +++++++++++++++++++++++++++++++++++ 5 files changed, 145 insertions(+), 5 deletions(-) create mode 100644 arch/arm64/kernel/sys_ilp32.c -- 2.11.0 diff --git a/arch/arm64/include/asm/unistd.h b/arch/arm64/include/asm/unistd.h index 99d29290c98b..1bf5572cd078 100644 --- a/arch/arm64/include/asm/unistd.h +++ b/arch/arm64/include/asm/unistd.h @@ -13,12 +13,16 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -#ifdef CONFIG_AARCH32_EL0 + +#ifdef CONFIG_COMPAT #define __ARCH_WANT_COMPAT_STAT64 +#define __ARCH_WANT_SYS_LLSEEK +#endif + +#ifdef CONFIG_AARCH32_EL0 #define __ARCH_WANT_SYS_GETHOSTNAME #define __ARCH_WANT_SYS_PAUSE #define __ARCH_WANT_SYS_GETPGRP -#define __ARCH_WANT_SYS_LLSEEK #define __ARCH_WANT_SYS_NICE #define __ARCH_WANT_SYS_SIGPENDING #define __ARCH_WANT_SYS_SIGPROCMASK diff --git a/arch/arm64/include/uapi/asm/unistd.h b/arch/arm64/include/uapi/asm/unistd.h index 48355a683e25..e7106bb45095 100644 --- a/arch/arm64/include/uapi/asm/unistd.h +++ b/arch/arm64/include/uapi/asm/unistd.h @@ -14,7 +14,19 @@ * along with this program. If not, see . */ +/* + * Use AARCH32 interface for sys_sync_file_range() as it passes 64-bit arguments. + */ +#if defined(__ILP32__) || defined(__SYSCALL_COMPAT) +#define __ARCH_WANT_SYNC_FILE_RANGE2 +#endif + +/* + * AARCH64/ILP32 is introduced after next syscalls were deprecated. + */ +#if !(defined(__ILP32__) || defined(__SYSCALL_COMPAT)) #define __ARCH_WANT_RENAMEAT #define __ARCH_WANT_SET_GET_RLIMIT +#endif #include diff --git a/arch/arm64/kernel/Makefile b/arch/arm64/kernel/Makefile index f6f12e2e5010..7e0c48f858f1 100644 --- a/arch/arm64/kernel/Makefile +++ b/arch/arm64/kernel/Makefile @@ -29,7 +29,7 @@ $(obj)/%.stub.o: $(obj)/%.o FORCE arm64-obj-$(CONFIG_AARCH32_EL0) += sys32.o kuser32.o signal32.o \ sys_compat.o entry32.o binfmt_elf32.o -arm64-obj-$(CONFIG_ARM64_ILP32) += binfmt_ilp32.o +arm64-obj-$(CONFIG_ARM64_ILP32) += binfmt_ilp32.o sys_ilp32.o arm64-obj-$(CONFIG_COMPAT) += entry32_common.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/entry.S b/arch/arm64/kernel/entry.S index 279bc2ab10c3..7d52fe1ec6bd 100644 --- a/arch/arm64/kernel/entry.S +++ b/arch/arm64/kernel/entry.S @@ -308,6 +308,23 @@ tsk .req x28 // current thread_info .text +#ifdef CONFIG_ARM64_ILP32 +/* + * AARCH64/ILP32. Zero top halves of x0-x7 + * registers as userspace may put garbage there. + */ + .macro delouse_input_regs + mov w0, w0 + mov w1, w1 + mov w2, w2 + mov w3, w3 + mov w4, w4 + mov w5, w5 + mov w6, w6 + mov w7, w7 + .endm +#endif + /* * Exception vectors. */ @@ -577,6 +594,7 @@ el0_svc_compat: * AArch32 syscall handling */ adrp stbl, compat_sys_call_table // load compat syscall table pointer + ldr x16, [tsk, #TSK_TI_FLAGS] uxtw scno, w7 // syscall number in w7 (r7) mov sc_nr, #__NR_compat_syscalls b el0_svc_naked @@ -798,15 +816,21 @@ ENDPROC(ret_from_fork) .align 6 el0_svc: adrp stbl, sys_call_table // load syscall table pointer + ldr x16, [tsk, #TSK_TI_FLAGS] uxtw scno, w8 // syscall number in w8 mov sc_nr, #__NR_syscalls +#ifdef CONFIG_ARM64_ILP32 + tst x16, #_TIF_32BIT_AARCH64 + b.eq el0_svc_naked // We are using LP64 syscall table + adrp stbl, sys_call_ilp32_table // load ilp32 syscall table pointer + delouse_input_regs +#endif el0_svc_naked: // compat entry point stp x0, scno, [sp, #S_ORIG_X0] // save the original x0 and syscall number enable_dbg_and_irq ct_user_exit 1 - ldr x16, [tsk, #TSK_TI_FLAGS] // check for syscall hooks - tst x16, #_TIF_SYSCALL_WORK + tst x16, #_TIF_SYSCALL_WORK // check for syscall hooks b.ne __sys_trace cmp scno, sc_nr // check upper syscall limit b.hs ni_sys diff --git a/arch/arm64/kernel/sys_ilp32.c b/arch/arm64/kernel/sys_ilp32.c new file mode 100644 index 000000000000..d203dec7011b --- /dev/null +++ b/arch/arm64/kernel/sys_ilp32.c @@ -0,0 +1,100 @@ +/* + * AArch64- ILP32 specific system calls implementation + * + * Copyright (C) 2017 Cavium Inc. + * Author: Andrew Pinski + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#define __SYSCALL_COMPAT + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* + * AARCH32 requires 4-page alignement for shared memory, + * but AARCH64 - only 1 page. This is the only difference + * between compat and native sys_shmat(). So ILP32 just pick + * AARCH64 version. + */ +#define compat_sys_shmat sys_shmat + +/* + * ILP32 needs special handling for some ptrace requests. + */ +#define sys_ptrace compat_sys_ptrace + +/* + * Using AARCH32 interface for syscalls that take 64-bit + * parameters in registers. + */ +#define compat_sys_fadvise64_64 compat_sys_fadvise64_64_wrapper +#define compat_sys_fallocate compat_sys_fallocate_wrapper +#define compat_sys_ftruncate64 compat_sys_ftruncate64_wrapper +#define compat_sys_pread64 compat_sys_pread64_wrapper +#define compat_sys_pwrite64 compat_sys_pwrite64_wrapper +#define compat_sys_readahead compat_sys_readahead_wrapper +#define compat_sys_sync_file_range2 compat_sys_sync_file_range2_wrapper +#define compat_sys_truncate64 compat_sys_truncate64_wrapper +#define sys_mmap2 compat_sys_mmap2_wrapper + +/* + * Using AARCH32 interface for syscalls that take the size of + * sfruct statfs as an argument, as it's calculated differently + * in kernel and user spaces. + */ +#define compat_sys_fstatfs64 compat_sys_fstatfs64_wrapper +#define compat_sys_statfs64 compat_sys_statfs64_wrapper + +/* + * Using custom wrapper for rt_sigreturn() to handle custom + * struct rt_sigframe. + */ +#define compat_sys_rt_sigreturn ilp32_sys_rt_sigreturn_wrapper + +asmlinkage long compat_sys_fstatfs64_wrapper(void); +asmlinkage long compat_sys_statfs64_wrapper(void); +asmlinkage long compat_sys_fadvise64_64_wrapper(void); +asmlinkage long compat_sys_fallocate_wrapper(void); +asmlinkage long compat_sys_ftruncate64_wrapper(void); +asmlinkage long compat_sys_mmap2_wrapper(void); +asmlinkage long compat_sys_pread64_wrapper(void); +asmlinkage long compat_sys_pwrite64_wrapper(void); +asmlinkage long compat_sys_readahead_wrapper(void); +asmlinkage long compat_sys_sync_file_range2_wrapper(void); +asmlinkage long compat_sys_truncate64_wrapper(void); +asmlinkage long ilp32_sys_rt_sigreturn_wrapper(void); + +#include + +#undef __SYSCALL +#define __SYSCALL(nr, sym) [nr] = sym, + +/* + * The sys_call_ilp32_table array must be 4K aligned to be accessible from + * kernel/entry.S. + */ +void *sys_call_ilp32_table[__NR_syscalls] __aligned(4096) = { + [0 ... __NR_syscalls - 1] = sys_ni_syscall, +#include +}; From patchwork Sun Jun 4 12:00:04 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yury Norov X-Patchwork-Id: 101371 Delivered-To: patch@linaro.org Received: by 10.140.91.77 with SMTP id y71csp495859qgd; Sun, 4 Jun 2017 05:05:49 -0700 (PDT) X-Received: by 10.99.125.12 with SMTP id y12mr15992459pgc.5.1496577949815; Sun, 04 Jun 2017 05:05:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1496577949; cv=none; d=google.com; s=arc-20160816; b=m5JbYAC5ihOKDUIfI8VvXXCW4y98iLIpq+Mdd9D7caOpRE1KRWwbjT4Fle+zx+RqOd CfPvO+xOv54IjV1tJXnTGuRqzun+zkMC/CmkS+/VCup/FtbHkKKDFN2R0oiM1B5+4uH0 QKK5psLQSlL9xMINFyDQ38FblqB9kIwIRvRl1LVGkY4bPiACrWobLOqHtZmzIwx35iR1 3+0b4bd13Gb1DSdHAedqAOD/be1wbKw4QVR86cpfQveL+3JxUNQBdWaxGKEtRy0oLcYa TQ6bd5fM0nfFVxBjGcvopLHLIlNIauwoldZasva6nko20LEN2h4Wdt7cU5B6Vy35SRYD 6WsA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:spamdiagnosticmetadata :spamdiagnosticoutput:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature:arc-authentication-results; bh=eePZQHj5I8nXaLVus+kylbnJDbphmAT5zvcXveICkeU=; b=C2TWr1/5qPnzH2SDGqRssIJQwn6XKzgGUro9P5aakp9uoSFzpYoImGwWW7ueogDyX2 gvBx23WP+rL4ZadjCa9ILMRa7WuMhiomYs+MGwSGDL55xYYUj+WzsLzLEbPafwecg3hc K8xF1MAg/Pa4d1aKZc6JnNUB0I3pBbp6dYxx+dOG6wXuPaLyWpX6ovKd3PEoyivyWUMk VV6q7gSzi8SlZF+zBhcflB4UBSqJYwudHmRjc2nbL2N/g6BEtYZKMdEJqze+y1a1eaKR NdWdiVdj+E7ssSyHWT95nCL2CLtrYBseMkz3ArXmnfvKjAH3zZ/pektagv48bR8Axx+z Fmdw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@CAVIUMNETWORKS.onmicrosoft.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id i69si5953521pfe.143.2017.06.04.05.05.49; Sun, 04 Jun 2017 05:05:49 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@CAVIUMNETWORKS.onmicrosoft.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751269AbdFDMFh (ORCPT + 25 others); Sun, 4 Jun 2017 08:05:37 -0400 Received: from mail-bl2nam02on0044.outbound.protection.outlook.com ([104.47.38.44]:47264 "EHLO NAM02-BL2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751248AbdFDMDX (ORCPT ); Sun, 4 Jun 2017 08:03:23 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=eePZQHj5I8nXaLVus+kylbnJDbphmAT5zvcXveICkeU=; b=GhY5yb1zMnbXz+vTs4VulZ2RIge6HNDKVkpszDYMDyC2c2FKv5v1vD+/6qo9kbzIwRgEqsbxSZE3bRHuhMuUsHv9VCiHAnG50MLw+sfGVJvPsTxmt6yU4iJ0m/L5JvaD2KyGYgBSy+2D1joM6FE64F/K03JHWd8kuSHkSQsqfRc= Authentication-Results: arm.com; dkim=none (message not signed) header.d=none; arm.com; dmarc=none action=none header.from=caviumnetworks.com; Received: from localhost (176.59.55.28) by BY1PR0701MB1272.namprd07.prod.outlook.com (10.160.108.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1143.10; Sun, 4 Jun 2017 12:03:14 +0000 From: Yury Norov To: Catalin Marinas , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, Arnd Bergmann Cc: Yury Norov , Andrew Pinski , Andrew Pinski , Adam Borowski , Chris Metcalf , Steve Ellcey , Maxim Kuvyrkov , Ramana Radhakrishnan , Florian Weimer , Bamvor Zhangjian , Andreas Schwab , Chris Metcalf , Heiko Carstens , schwidefsky@de.ibm.com, broonie@kernel.org, Joseph Myers , christoph.muellner@theobroma-systems.com, szabolcs.nagy@arm.com, klimov.linux@gmail.com, Nathan_Lynch@mentor.com, agraf@suse.de, Prasun.Kapoor@caviumnetworks.com, geert@linux-m68k.org, philipp.tomsich@theobroma-systems.com, manuel.montezelo@gmail.com, linyongting@huawei.com, davem@davemloft.net, zhouchengming1@huawei.com, Bamvor Jian Zhang Subject: [PATCH 15/20] arm64: signal: share lp64 signal routines to ilp32 Date: Sun, 4 Jun 2017 15:00:04 +0300 Message-Id: <20170604120009.342-16-ynorov@caviumnetworks.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170604120009.342-1-ynorov@caviumnetworks.com> References: <20170604120009.342-1-ynorov@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [176.59.55.28] X-ClientProxiedBy: HE1PR09CA0079.eurprd09.prod.outlook.com (10.174.50.151) To BY1PR0701MB1272.namprd07.prod.outlook.com (10.160.108.18) X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BY1PR0701MB1272: X-MS-Office365-Filtering-Correlation-Id: 9be96b64-3304-4c0f-998d-08d4ab41ae0b X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131423075)(201703031133081); SRVR:BY1PR0701MB1272; X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1272; 3:JRIEq89clns1DZeZmXYSLyOzxRKdjklcZfPfj9fimKipQu3b01U6fGe85fKNQGAqyAGKkjFMCu2VgvyGVFMPY3m3SEmfsP5EH0eMGqeB2YOgnexQdjRdxN9bLqieVSgUIfryHID9+synVQOXTZG7Y+aic2PS2ZEKIA2CpL0GRkFxC635JtasStQC+GMfGkqbfdgEB+gotc8wiR3UNy7LsxSNWHvWgHjQL9XJ/TaxWUhesYgxox+QtzX3A/+W4O94lvNIOQDM0+GBMpTxpQHk7DOk/+ZoEFml6k9ce+/RYcMo5Cte9WETx5PvSC+Tmr2HNRPkQTfflVEtU98a4GG0mQ==; 25:lIfqbpXtW5fdo/wcG7F/E0sTYAipfDGWLgq1yncyGNW5JR6q/Ftxzrj+SB0WbHIdyW0d3ieN76lwD4Ae+7eeP2aa7BCpX/aVwVZdA5M7l76vp+m1j+YbT0PNh3LPBOhDVprX2frV2Ewf9ipaSgUIm21DoYXjGxtCy/qTqc0lh1I1jdE04Ve9YMwpjzLkezOXUTmMXLCVvbgHfWxRqt5WtLodWMSkKLYaP3v7KrhaPPeHH/Dgz2kE+y/vAvKQfsx/QlccqRYYVLW4RovpbENeCQJlav9Jb+M7x3itkkOoP49DTT6T57o3DS0Ks3JnWM0iSlUnlT7PNO+V8AGss/AdQpREA8x7fIHjFFK3P0UrepUxa3TWZBc5K0Rhui4xRR7d7HsJbnuDgEA8W2HoFDSov3bB/leXDUQOwRD7nMbfhhIPsVshnhwDhSjM+praNsnpjFpx2BuQQUviQvelLZ2X6XSWO8meeee8/tw+FKEKC8k= X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1272; 31:Qgf0/5UZywha999WNNURoAUqZs0zgV0Cx/oYaCU/V5NmlwAUiOfoht0nUg2VzaZy2BoT4ATlK0Me43490QoOce4UFG3/ZA8FeLaAiEYwvrLtQbtpb+B3Dpur7/2nhBi6vtjn2JkEpAGGvrhmMpm0hSwGoji3otQrskEG15r9pgu8UVguCI4vMw302iCZlSRRRWv1pvRG/O5H3DOBRWQSK0GpBuFhcj+z9VXEQuDCrzE=; 20:OEfWaXP7ew5xVODUri55+UUHaDfpD4ORto72QhZLZ/G1WwmDXyio3CefYsnOS/SiuLQCszlL8n/FtURwRhnDOK4osJ2yaoQ88VDhoclZZEYbWkdYfnG+//OuH+mBh7VuVDp3Dswdu2ahEJ4Qzw7RnG241MR8jizT15/UM8/6XUoKwrL438//V+XfZ4eOOsb8S9nAlCiYgEjHX1JKiNngDmt/O356kCv1x7Ha5KcOY6p4/w0RWZt/htX6daugiwfkzEVjDfNLZ0Hycz9NsNM2o5G+EtzD80SQYfrx6AZ178ve/VK5/VVTjKdPofQP6vLMZJsgQRN+eFFvQvxKgh4NRKV+nBj4PzEvQokFB/uES1QsC5IgRYlUc8DxvVYZ5FUGMC2o7mAgDtBjDRPCJ3EZS6WAB33XPxW1EhuaPxTgwHrezAcV/hqzOMC+7aCf+J3cEDzgbR3nZEos9n1OBguhH7G0xwMifWnb7UNkhd+qxJ8cgMe5gKcXcjA33o4cjPNJrhLtC4OHtQT6gYm3YI/E2OgTcwg1xzOP2nm/UsRyrqQQDpLvsO/gBczvyCSY27hsyWfg2Z8+Bcdux5zcwJWDEFmog0cWp9IegCSIFjaJbGc= 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)(3002001)(93006095)(6041248)(20161123562025)(20161123560025)(20161123564025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BY1PR0701MB1272; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BY1PR0701MB1272; X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1272; 4:GoR41PHWAVfmpBKtMIV6MP26EmkkS8hN1Uzrra+UZGq+nHDqeDU6kViByTnUANuutirh+jSGbFkNhfcRWdrAjXz7whiYLWSKC9ik8CMLE+t07mmg7kIPDHvAykmZ+edFoeGC4aQwXgmakFTR9HYDmmlWESygaRvDu9r1CFo8s8xKz6Z2NPyY6ESezVkVSiw6a/dJoRl4UmY8XwOw+ma7CB7fY+RzQdO1aulrD4EnbGuLrA3mR5jTsjj4uio1u5XgrD4KtTLLzBXx+wfOVogzksBIUmy8+H8p48kFMBmRQ3r4HyDYLNxgxPl8BxpyRu05N2RAfmkG8ymJvpXzGeigQ6mcBdLHwuYE14dYE6knHA8fwwafO44tNVPqNF5bYKxxEndDqNvuSlFPhHjPy6mQYkDrr47+VSn6aySKrjC2sbK4WhV9FYH9RYl9PUzu6MmIMjC7dB3WmFSCTnAqcn+BDHXlP2o60/74G4CysvquM4zIjJPnbJUNrmfpF99xGlQxBzYmmJe/FRYcexa26GE0gJ0aZ3GkkqbFMLgVef7qHiK7YvQa5Kx4Vparmlp0vEJnEd7Gy20ndvzGq9Rf6iUmJE9zIUrKbkTbrZZnjem5UsfMfYwiOcNc5z1/m7nDmpT6ja56djhXJAJ6Kk+diWcys0ZEgOE2b+oQ0zAc0yQFNEQHU7S7cRceVd3bzMaggYpS/HP0lRQONpV6k6EDg/oLgz/KFTP3QEB0clL39c/aHODwky59XTgTIoZCO/ot/sFargZaVhq3GDldYozptc9utXhy8S66ka6COXqYxbJ/VjAAtg7eP4+s0sYV0QPe5k+SD/GZlggAyJq4v/hJTxNWbGHXOf4Q3OVqwmvWmi1ooEdSy4iYdBAft0IyB4Rn1JWbpQPtmAs7a1SISYIO7yqoClfFDCIjV+xCw5UcTPpy5NP5gzDOrXDLvedxHvgDo/PB4Oi6cS9CqbPB6cvW0jQy4LScunHDN/Ma2QwdOkPZ0HhHtH0fQGdWHnnhrLDxdccO021J2fKyGdlhvc1VBW/rIpHFH6OhzgpU9eIgOUFtmwBxgzx0KxVvC9IB4EkNou3zYt64zqKl3x1WfuGcVF83x4Ptx9vhUSWvEZWNQgIZbLiG8l/+qcq43aomQi95Su6+tEr4BcK1IRLj2pT45KZwoOziMrm9/5KPtJ8d778rSzXUcBSgz8knA1wGZzmH1n1J X-Forefront-PRVS: 03283976A6 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(6069001)(39850400002)(39400400002)(39410400002)(6666003)(42882006)(6306002)(2950100002)(6496005)(47776003)(38730400002)(66066001)(36756003)(6486002)(54906002)(478600001)(48376002)(72206003)(2906002)(50466002)(81166006)(76506005)(3846002)(305945005)(53936002)(33646002)(6116002)(5660300001)(42186005)(50986999)(25786009)(50226002)(76176999)(1076002)(4326008)(189998001)(8676002)(7416002)(7406005)(5003940100001); DIR:OUT; SFP:1101; SCL:1; SRVR:BY1PR0701MB1272; H:localhost; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1272; 23:sgEmnR3Za9Ybx/1johgAL0Mo2KyrdGUFOA1gBJpRRlJYrgxt6f61HpivHL04Y67AAY1UDGPPqZnsgsYYZE3YNkaw+9uEEYdlTNRflgmTqA5ri5sgULojiURHB9VQXYeXRovj/FaiYdm+xho31HAf1xJQDzngY4pGHOEP0Q5sZT+nePqtiQ1xUeogDTUxW5hw8IJupxb8f74BK4rpvYKdLoihtd9ixwifO0DfKQz5Jk0qAf7pHJimerAtjFESNLdH7VvYoB/X7hcEC7U9VxLJMI4DJpUj4RfngSjkoIiTuJbeTFf5PNKx56ICD6oeOh5Mx0URSNVlLzxjXUxahJJunwrlC7WaJ/fWZqgkiGeQa95hDssVs9KdM5YRJMAPXQrUYkdhB7pkiKwpcxzYa/moQnz1l0rH0uGpAxVZlraVeMgr9ZysdGFoO0+a5MssjXg1DH0SV097voAIw8AOlJeaieFHkSeGP3eqVBtioiRBzioW4jbfMGPPw4TodyrYP2UvBh/dV1dBhl5GZpwcl2a+9MdQgvTjQ/DygJIEOuE+aA3IHWh2WmCHpJiX+Hhf1uEZudv5hQx+KwX40gPu+ZLwox2pKWMuoIB3hpjSdqTrU9UL/zB0zh3nkZdKu2OknhttRmE3V5vr4UUZC1p1eIWJOBZ8K6b+3ZfWkBKzVEr6KfiLjmAsd2A3hemL+IaRZXb1M1WdSzyCSU1rw76gWjr8T04vuzC3vQ4owfyCc+dBuCax4wYMu+lQEJy9+G1G0FKyaON6N+tLgn6SxgniDi3n53WSe3YHgB+UTe8rlcqhsGGHuKLakh039Miqv4WBlYaKdxFfvt8YXo7icvMOd0gV5zEJwkQYMbhJK7VQFUdUNiF70XIOdKi9C0u+rzVBUM7SbRphd35ZoKBqGflzdsUSKcCFezXbNkqASijdceYc9RTTxtzXZattHXFocq8tzZmk0kvgROTp6VmzEaZraxF703e6NQYXrbsvCdBxabj42cUdqiyxf/MWkhwWPXfD2jkx6hCSlyOg2w4xmJFFE7TPKTMtxxXzlGYraL8B2a+8DaE= X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1272; 6:l/gXDz6pSbiYyAacBdY4umGpVi/EeqTHu/vipBogQkTn8h6HyOhcvIu/kyrcTES6B8DdB9K71L0GGq7fdg98oAfKWvhjH56NfjlXjm+NFLir2cq7T/GZzsu7ynMUyzKWvNx5u0caAIboYtm+P2EVkh0AYh3YqDxwN5EcMzvQbA/MJd5PMVdvjA/r5vAx1xMP0ar6/6P+fx0hRVlrUo8jOZVludBAYi4bw6lXY/8Lxr2NKjPDNSb5/w9s+gp/nO3BuhCuiJd0+AQvhCFdgZS0qKwe1PUDbt4hW3zNVdkt2hzvrLi3IV8F2QtXGbo1TdyFAZnbE6HsClzGC27s3FT4pGameOWfPVfNEJotAeYgIGsMOLye8fe7wbrS0FfqNr8S8Cz3OMoLtvy5esOpQLCIdmtYn+pyzk6xNtzSwBJVXLUHnc95xndomfTmrbl1ISJM1w26ikgj7BWp8yWv2QgNNTqviIpNTa4N5dYiituyhpn3bZ6VDgYf282vBJ3UU5ZtlyAsntghzNVf2EktSsTJ5g== X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1272; 5:jGHuVb28fFGcruPiuTDI/CVFQGGBdpDSd2qYo+zdxEQDm9Fjvv6T6Vewrbmuifsm5rKQT96SNCOLMTOZvCg1Xdr3ctq2cjkZiFYqfuhMhtrMZ3SldFiNx+JAHlikYL1AF1jF5kb50f1vSabppDBrbTkzi6EEJJ8EWQzGfkwEk3prxfJk0M8u3pOUBRaUHeZOk0rikIVRB3U3TnXQ0sDktB6mIKEoK3J3GG22gHdJ0G8p1eXg+7im51doGP2oWiEDhZMhF0UW8k+bIN4LU7T2Vq1qvx40LF6yKjq2nK0gVdcRIEvQ7yygRrIeUlK2jkOX00k24OMSMN6+Lw01XnpoJmcC71eSBy5ueA1WS7CP4/yq+Naz4I/vkYjJAKEqPSDy8G/kM6Knv7MIWQMU0eXFCOz3Kk+I/OdhI1MS7qyUXxb9707Dq+xYApnERdRRpbvK30Qe1YqoNaXW+ZI+gFwwqUwlBuLoysKhLyvUwUmR4OCWUGOJrprPFMUVJ08P+U8x; 24:LgLRaNfpVgbO1M/Jue0/0reLhYeVkZwmc4CS1+LopRAumZ5RW8cEwdMqYXcnizRUm1ofFPLeLEBpooVi/wDDADpU4ObaaNO7o9HwRMANF2g= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1272; 7:HZCackhvgP1gwVb5c/Q/oIxkejpC0n2xB/knaAdt+ddVepoRMcq7+GYMAIv9y36pWw8Y3u9U6KYjoV6iqYN5odT+8rBMPQ09DMlSxXC3hPsWPPaUAFWBEPSCsuUQN38CDrXdM2e+ttNdTKiX1EB1LMs5hm3z6Uns8uRHz3Ha2rnnLf3+vLa7LBkGDF+vQFn9pbD2l0StJxDr2sauXRlvV4QZoYczOfu7uNdt54Si5Z1H7HROgHyjDZW7lvDZ1TcOOWbqO3emO4fPZwFtG8hCITxlMHo8FH8d3uGl57++7Lg6jr0+wPY3o1q0OF7V41J722dhyZfAs2MCj9YUQ43v9w== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jun 2017 12:03:14.1520 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR0701MB1272 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org After that, it will be possible to reuse it in ilp32. Signed-off-by: Yury Norov Signed-off-by: Bamvor Jian Zhang --- arch/arm64/include/asm/signal_common.h | 33 ++++++++++++ arch/arm64/kernel/signal.c | 93 +++++++++++++++++++++------------- 2 files changed, 92 insertions(+), 34 deletions(-) create mode 100644 arch/arm64/include/asm/signal_common.h -- 2.11.0 diff --git a/arch/arm64/include/asm/signal_common.h b/arch/arm64/include/asm/signal_common.h new file mode 100644 index 000000000000..f68238160940 --- /dev/null +++ b/arch/arm64/include/asm/signal_common.h @@ -0,0 +1,33 @@ +/* + * Copyright (C) 1995-2009 Russell King + * Copyright (C) 2012 ARM Ltd. + * Copyright (C) 2017 Cavium Networks. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef __ASM_SIGNAL_COMMON_H +#define __ASM_SIGNAL_COMMON_H + +#include +#include +#include + +int preserve_fpsimd_context(struct fpsimd_context __user *ctx); +int restore_fpsimd_context(struct fpsimd_context __user *ctx); +int setup_sigcontext(struct sigcontext __user *uc_mcontext, struct pt_regs *regs); +int restore_sigcontext(struct pt_regs *regs, struct sigcontext __user *sf); +void setup_return(struct pt_regs *regs, struct k_sigaction *ka, + void __user *frame, off_t sigframe_off, int usig); + +#endif /* __ASM_SIGNAL_COMMON_H */ diff --git a/arch/arm64/kernel/signal.c b/arch/arm64/kernel/signal.c index 5fa1b401c5d6..9f2ea60b9fac 100644 --- a/arch/arm64/kernel/signal.c +++ b/arch/arm64/kernel/signal.c @@ -34,18 +34,26 @@ #include #include #include +#include + +#define RT_SIGFRAME_FP_POS (offsetof(struct rt_sigframe, sig) \ + + offsetof(struct sigframe, fp)) + +struct sigframe { + struct ucontext uc; + u64 fp; + u64 lr; +}; /* * Do a signal return; undo the signal stack. These are aligned to 128-bit. */ struct rt_sigframe { struct siginfo info; - struct ucontext uc; - u64 fp; - u64 lr; + struct sigframe sig; }; -static int preserve_fpsimd_context(struct fpsimd_context __user *ctx) +int preserve_fpsimd_context(struct fpsimd_context __user *ctx) { struct fpsimd_state *fpsimd = ¤t->thread.fpsimd_state; int err; @@ -65,7 +73,7 @@ static int preserve_fpsimd_context(struct fpsimd_context __user *ctx) return err ? -EFAULT : 0; } -static int restore_fpsimd_context(struct fpsimd_context __user *ctx) +int restore_fpsimd_context(struct fpsimd_context __user *ctx) { struct fpsimd_state fpsimd; __u32 magic, size; @@ -93,22 +101,30 @@ static int restore_fpsimd_context(struct fpsimd_context __user *ctx) } static int restore_sigframe(struct pt_regs *regs, - struct rt_sigframe __user *sf) + struct sigframe __user *sf) { sigset_t set; - int i, err; - void *aux = sf->uc.uc_mcontext.__reserved; - + int err; err = __copy_from_user(&set, &sf->uc.uc_sigmask, sizeof(set)); if (err == 0) set_current_blocked(&set); + err |= restore_sigcontext(regs, &sf->uc.uc_mcontext); + return err; +} + + +int restore_sigcontext(struct pt_regs *regs, struct sigcontext __user *uc_mcontext) +{ + int i, err = 0; + void *aux = uc_mcontext->__reserved; + for (i = 0; i < 31; i++) - __get_user_error(regs->regs[i], &sf->uc.uc_mcontext.regs[i], + __get_user_error(regs->regs[i], &uc_mcontext->regs[i], err); - __get_user_error(regs->sp, &sf->uc.uc_mcontext.sp, err); - __get_user_error(regs->pc, &sf->uc.uc_mcontext.pc, err); - __get_user_error(regs->pstate, &sf->uc.uc_mcontext.pstate, err); + __get_user_error(regs->sp, &uc_mcontext->sp, err); + __get_user_error(regs->pc, &uc_mcontext->pc, err); + __get_user_error(regs->pstate, &uc_mcontext->pstate, err); /* * Avoid sys_rt_sigreturn() restarting. @@ -145,10 +161,10 @@ asmlinkage long sys_rt_sigreturn(struct pt_regs *regs) if (!access_ok(VERIFY_READ, frame, sizeof (*frame))) goto badframe; - if (restore_sigframe(regs, frame)) + if (restore_sigframe(regs, &frame->sig)) goto badframe; - if (restore_altstack(&frame->uc.uc_stack)) + if (restore_altstack(&frame->sig.uc.uc_stack)) goto badframe; return regs->regs[0]; @@ -162,27 +178,36 @@ asmlinkage long sys_rt_sigreturn(struct pt_regs *regs) return 0; } -static int setup_sigframe(struct rt_sigframe __user *sf, +static int setup_sigframe(struct sigframe __user *sf, struct pt_regs *regs, sigset_t *set) { - int i, err = 0; - void *aux = sf->uc.uc_mcontext.__reserved; - struct _aarch64_ctx *end; + int err = 0; /* set up the stack frame for unwinding */ __put_user_error(regs->regs[29], &sf->fp, err); __put_user_error(regs->regs[30], &sf->lr, err); + err |= __copy_to_user(&sf->uc.uc_sigmask, set, sizeof(*set)); + err |= setup_sigcontext(&sf->uc.uc_mcontext, regs); + + return err; +} + +int setup_sigcontext(struct sigcontext __user *uc_mcontext, + struct pt_regs *regs) +{ + void *aux = uc_mcontext->__reserved; + struct _aarch64_ctx *end; + int i, err = 0; for (i = 0; i < 31; i++) - __put_user_error(regs->regs[i], &sf->uc.uc_mcontext.regs[i], + __put_user_error(regs->regs[i], &uc_mcontext->regs[i], err); - __put_user_error(regs->sp, &sf->uc.uc_mcontext.sp, err); - __put_user_error(regs->pc, &sf->uc.uc_mcontext.pc, err); - __put_user_error(regs->pstate, &sf->uc.uc_mcontext.pstate, err); - __put_user_error(current->thread.fault_address, &sf->uc.uc_mcontext.fault_address, err); + __put_user_error(regs->sp, &uc_mcontext->sp, err); + __put_user_error(regs->pc, &uc_mcontext->pc, err); + __put_user_error(regs->pstate, &uc_mcontext->pstate, err); - err |= __copy_to_user(&sf->uc.uc_sigmask, set, sizeof(*set)); + __put_user_error(current->thread.fault_address, &uc_mcontext->fault_address, err); if (err == 0) { struct fpsimd_context *fpsimd_ctx = @@ -229,14 +254,14 @@ static struct rt_sigframe __user *get_sigframe(struct ksignal *ksig, return frame; } -static void setup_return(struct pt_regs *regs, struct k_sigaction *ka, - void __user *frame, int usig) +void setup_return(struct pt_regs *regs, struct k_sigaction *ka, + void __user *frame, off_t fp_pos, int usig) { __sigrestore_t sigtramp; regs->regs[0] = usig; regs->sp = (unsigned long)frame; - regs->regs[29] = regs->sp + offsetof(struct rt_sigframe, fp); + regs->regs[29] = regs->sp + fp_pos; regs->pc = (unsigned long)ka->sa.sa_handler; if (ka->sa.sa_flags & SA_RESTORER) @@ -257,17 +282,17 @@ static int setup_rt_frame(int usig, struct ksignal *ksig, sigset_t *set, if (!frame) return 1; - __put_user_error(0, &frame->uc.uc_flags, err); - __put_user_error(NULL, &frame->uc.uc_link, err); + __put_user_error(0, &frame->sig.uc.uc_flags, err); + __put_user_error(NULL, &frame->sig.uc.uc_link, err); - err |= __save_altstack(&frame->uc.uc_stack, regs->sp); - err |= setup_sigframe(frame, regs, set); + err |= __save_altstack(&frame->sig.uc.uc_stack, regs->sp); + err |= setup_sigframe(&frame->sig, regs, set); if (err == 0) { - setup_return(regs, &ksig->ka, frame, usig); + setup_return(regs, &ksig->ka, frame, RT_SIGFRAME_FP_POS, usig); if (ksig->ka.sa.sa_flags & SA_SIGINFO) { err |= copy_siginfo_to_user(&frame->info, &ksig->info); regs->regs[1] = (unsigned long)&frame->info; - regs->regs[2] = (unsigned long)&frame->uc; + regs->regs[2] = (unsigned long)&frame->sig.uc; } } From patchwork Sun Jun 4 12:00:05 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yury Norov X-Patchwork-Id: 101370 Delivered-To: patch@linaro.org Received: by 10.140.91.77 with SMTP id y71csp495736qgd; Sun, 4 Jun 2017 05:05:26 -0700 (PDT) X-Received: by 10.98.58.83 with SMTP id h80mr15338859pfa.50.1496577926331; Sun, 04 Jun 2017 05:05:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1496577926; cv=none; d=google.com; s=arc-20160816; b=ZY6CZSAnJodfaj+n456OLpAB+osfxEP36gA+69MGrrlwOITBa3MaKnh6u4kTo5Dy4I HKfrqRY+cYoA8+qV0CveksdPmgDCU3k8+LRKhtYVUN4hWjd3E1tOJppnowRkrYwy8TXs aZv0wJRUkD4d0w+YaKntP8nEfoyIvEVxSEGr0aSNSfjBNAiPcnmDbZQtVC+btd7qCY7R gMoNE9VJOAE53dPfgVV0A8GSGsoyxaKvxQhNDaxkLoBjpzGJEqljVhiB8KrQ02UidJYg h0pUjlygsPrsNNdv/0vtm8xep4rf8smVmIwI0CHRFhr/iDSJtOvmb2jVPdXXVrb4AuxA mUiw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:spamdiagnosticmetadata :spamdiagnosticoutput:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature:arc-authentication-results; bh=tmLUytsPL1wPsUN3wmqa3Bk+DXNOC2NsSqzrz2OeMLU=; b=oyWAQ3VD+OLiyaujSoXf81Ir7Xdfwxb7fsBKKkMKgkyqDaL8sQaTzdqLnnBvsJCJ/t ketRUbWldUC++1OiQq0jSgjhZV7AgFrs3nycCbowOnwuJKJOmqFe3inTvL/geJ70eOaB wn6UKzBOzTDjKvae1ZnOZUqt/BdlvDQ174FxXV4dOvOeVGU/WMhTsJjgWZ566Xm2yGPd eaHePUmfcW0eGPj9iOCARCuqFaU0qln40QynCGDym1WfFJK1yXRN4VAggeQ2Z1xdn8EQ TrFD9NDpuKZRM2HmJVLveTI4RQXiOez7FTugE2/JC4/wa9hB8tXYNVhCp3fneAIPQXZh zzBg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@CAVIUMNETWORKS.onmicrosoft.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id m27si603046pgd.21.2017.06.04.05.05.26; Sun, 04 Jun 2017 05:05:26 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@CAVIUMNETWORKS.onmicrosoft.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751372AbdFDMFW (ORCPT + 25 others); Sun, 4 Jun 2017 08:05:22 -0400 Received: from mail-bl2nam02on0041.outbound.protection.outlook.com ([104.47.38.41]:25248 "EHLO NAM02-BL2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751278AbdFDMDa (ORCPT ); Sun, 4 Jun 2017 08:03:30 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=tmLUytsPL1wPsUN3wmqa3Bk+DXNOC2NsSqzrz2OeMLU=; b=HyD1CHlENteHM0oi1vqPu5Ykxc+BkSVwJOkghuCD7M+uzjh7MQAoO1BhJuWXV3bwRT1yDjzgM4EtPPzOox0HXBQFrd+jcgGY0sZvp7/fxDI6bmB4epeSV5o1REG/FI4hkCLdTrJEBZWG12OjRhC8hkTtBf69FTXqGWjDzaHsgN8= Authentication-Results: arm.com; dkim=none (message not signed) header.d=none; arm.com; dmarc=none action=none header.from=caviumnetworks.com; Received: from localhost (176.59.55.28) by DM2PR0701MB1280.namprd07.prod.outlook.com (2a01:111:e400:5118::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1143.10; Sun, 4 Jun 2017 12:03:21 +0000 From: Yury Norov To: Catalin Marinas , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, Arnd Bergmann Cc: Yury Norov , Andrew Pinski , Andrew Pinski , Adam Borowski , Chris Metcalf , Steve Ellcey , Maxim Kuvyrkov , Ramana Radhakrishnan , Florian Weimer , Bamvor Zhangjian , Andreas Schwab , Chris Metcalf , Heiko Carstens , schwidefsky@de.ibm.com, broonie@kernel.org, Joseph Myers , christoph.muellner@theobroma-systems.com, szabolcs.nagy@arm.com, klimov.linux@gmail.com, Nathan_Lynch@mentor.com, agraf@suse.de, Prasun.Kapoor@caviumnetworks.com, geert@linux-m68k.org, philipp.tomsich@theobroma-systems.com, manuel.montezelo@gmail.com, linyongting@huawei.com, davem@davemloft.net, zhouchengming1@huawei.com Subject: [PATCH 16/20] arm64: signal32: move ilp32 and aarch32 common code to separated file Date: Sun, 4 Jun 2017 15:00:05 +0300 Message-Id: <20170604120009.342-17-ynorov@caviumnetworks.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170604120009.342-1-ynorov@caviumnetworks.com> References: <20170604120009.342-1-ynorov@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [176.59.55.28] X-ClientProxiedBy: HE1PR09CA0078.eurprd09.prod.outlook.com (2603:10a6:7:3d::22) To DM2PR0701MB1280.namprd07.prod.outlook.com (2a01:111:e400:5118::18) X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM2PR0701MB1280: X-MS-Office365-Filtering-Correlation-Id: 93fbe0e4-92ba-47e6-b836-08d4ab41b24e X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131423075)(201703031133081); SRVR:DM2PR0701MB1280; X-Microsoft-Exchange-Diagnostics: 1; DM2PR0701MB1280; 3:wejLMckRdzawNpaXk5KkxSW63ky9WcKX/cnVgKwH8y5mt2oFIL9jyaVZfLt4+/HiTAHap/3JwQMFgJ45BUkQlRSdUJarfsIOTimMmPmP97nAWpHD85e55d8CDOiNpk5bO3+gePHTe8kVFB+QXbNTV58SxNweXYR87UhHAqAXAlmM+RRkAKhk6Y5L9jwJUGI1P2+HdQbFKPRN1lwfnERHS+AXkXzecGHQbnGdaycH6Dj0ZxaN5QHKjIvfCLkO7V8fi/QU7U9mRTaVLWxuL0HxMFNKWwkq9zX83+YvJ995FsRZ7zlJH+9jpirfLtI/oJpXaocnyLDeFRxqR1P9aAmj/g==; 25:iQxuQg5sIQ75eof5glRei/P/zgb+rMtDyepkII/ZZ8XyJg5dJIcKgHje6DDv4rZtfhe/0D2WEinlNufxjpP7pz99hnLT042C2jxX4tgUKPGdJYqY9A77IqHvgI7EunHaKlhb+nnrBtuFtY74vLSZySygca1aaQWkcbbv+9c5phUDFTtWRji8MkmDQqtDOTQ1pfwXMmxGF7M134yz00ingwteJw04xnNjdgXz1eDA+zAPOEJKRoj1fFaRx2aogRSJIEDYuu5fB/WBsB4vY8dHkzBr2NCFXqNnrJKlzL2APbEIYi04SO38paIlJyO24N/dKA8dZAbRR1oyHpbwiUu5aG/YF7QWazapIVgDxFwjOTEEV9TIEOHevSeqDqageYq5izvFeJqSyO+E2Stk9ge3TK2pXyvknfomB2gnLWu/wMvm4nVjyx8knC6Asxw00XkAFzHaIjmynzb+5scvQ3FOAXvvQNBqzc7xSMaIhEn8t9M= X-Microsoft-Exchange-Diagnostics: 1; DM2PR0701MB1280; 31:1tjCtSYqbQcuiG1eR4XIVKm9Cj4/CtfPsJJWHCeq0771vdM6ejxYD/O7juYmhUJirUHK9ghT5XF1xMjvetfIKOtMVYKgcFH110gmDtwJ4Fpf8ETbgOM2StCkjK3ZMs7dqDW5ps7UVJ0ZKRyxMQT/p7kIXTdjswSeLXSrn0PhjFazGyz+lI5lABDn+XcsVh8LG9JVZ9ji/TEQen98gtLCmkcIvyPbKO16+UsOnMUPINg=; 20:Qqs9I1hYCfS7HjKMsm6IhnclXt8XrkILKRjJYHMvs2/e2JEtIpOBOpplO2KrRGyOr2veOhouH2u6y/0VKDqkGL+LPmOf9IDLMIkRdIMz6uY8npWbK5yRgKCmeX01G3W0qAqOTN1GRT9ERzk1AJwAjNUDkeGW59kO9CguTY3vCYilROy8TyP6YT2c6iPRmDthQAitGGqRjErxVSLmBF0yWxsyPFtvej0qa9D9jwNVJZDDc19APOtPFwQqdD4rXQJ03nvuW2jixbqza3w4ycxoq0f5MSCJ+vErFiMvAARnih1CVmRmDc0TT7jeXGLsC21goL28FpxfZ5ptAuddHspDkYrIYoTCRcMMJqmh/uyufaQvQy57ecbPoN/31FvO6stLWb1MrFUokfimkukt6piwcREFG170qMsRIeVfiG+H+d4AEhxeFpZjOIj78WPBAVD4AFapbcF4p4s5/4dipg/mjyzkcyFMcYkYHd4RgLTy1O/wr8OceBXiF6IrllrdzNoyNXZJGX0f7i14pri//6XE8nSVRhs+7kdM264V1fpnfsju4g0YphDXxoNQfhrwvNzGobQJcQU9C6AiH2ABznFhoZ/NFOUAwczcAweJn2t0Obs= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(250305191791016)(180628864354917)(22074186197030)(192374486261705); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(100000703101)(100105400095)(3002001)(10201501046)(93006095)(6041248)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123564025)(20161123555025)(20161123560025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:DM2PR0701MB1280; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DM2PR0701MB1280; X-Microsoft-Exchange-Diagnostics: 1; DM2PR0701MB1280; 4:EwXlQIU5N4R0GQmGicqKr5984xpNh8bILGQQPwB5pI6J0h1rwo8L2Qw93uYWGWAEdHukA2uNdQe7nPRH7DJ4JTdzK0jvhpQnYycR8ADOYMxyuZLLBgPe1hr7bnepluvjnFr40Tca1R7SAq177+bbzW5YN3uu7/tVs7mJhMxXqLjIQHzfpLJR6e7isnJVEHMtKL82Up1gm/TUqE5a8BhNGFHf9gZK+GsQl/kefyd7TaqLF0PbL67T8FArzc5gfwQ6B9Tr2ehM+pF8MnlN9dpEhVxm1vCSxTaDjSbX1JtG+uium2AeLntpk2j74Z9Rx042lasxtSdj3B0p4acexrrKVqlUH+KU/Jpzk/vggOzplc2Q0QlWlm8LkYqrSANnCFlyd236eFy0GbVMmc7mkJSLWss+yqIPCc1LgnFxa+P72lny6s2RMiouHXvs18WAgud1YAD9zErp5MhV8gAZrXuRKwyFVFvJIw6eLDxhTNtP9GCReYSMsyLfhNqs3RW+U4ChaA3C3CsuWw127iyPXCdqLyvok2TrjkNMVkPyIy0TVA1LRfQpKP5GZF3yZM1+brCbMsBsMiQrQI2Lgf6SiNzItBhV7W24xgWJOrQ6s4s+gHnX2mscrgbRwbww8NRfazPrfdxKxw5PwputTIK2bf94ROCM0kt6hRCHrQQBjxnYmomVgcmw5oAuZC/dRRfYvn9eT60GH+EVkiIXvM4jfofwn4UIXOR80qFi4JrOu73C/O3d3e8UJx+H77Jx+X+91dmRxbj0P3nTDRvKiaXR4inGKkFiYklAD0YHMbJ4wz7OpN09Dlwt3x/P8qdgpB/xp337uZABAZDOsBMNn/4vsqpEkslCC8+D/Ug8xOO83yROTetz0CFhIwrpYIpQzjZHRxQnmN31oTJTN445CQAkJoF0vNb9f+a8+vcYzPOP04fEgEkGLjEljvXfMD7P0UKu6aEyaRJV3nya6cm1R1jKw1ffPPZzLH/+sppN3iuRIuP7zlftMN09IE2pchNVxJ7r05KUTNTjN4PIt+otOkQ3hcFTzIfFCF8ChFSj3v3XWu+Xgx7VyhO2lk2L4wBfg2fPJQ6kg0ptfixkBp2qrhjnb4/cehGntE18P+AYqEwAQI17H0R3X4/yBERzHq4poDtztGbCiE55CnXlvUlu371trsf97cSmykM+P9bXBkM4DUxtqJz3KYf4AVCUsV5la4fRsyZXF2DRqF2tDfmi+vX1I8VxIMC7FT7jZHxih3Kdu9mgRpcfMq+vAIhxFMK/9Le5Cndo X-Forefront-PRVS: 03283976A6 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6069001)(6009001)(39400400002)(39410400002)(6666003)(54906002)(2950100002)(81166006)(47776003)(42882006)(66066001)(50986999)(76176999)(36756003)(305945005)(38730400002)(6486002)(50466002)(53936002)(8676002)(7416002)(4326008)(25786009)(5660300001)(6306002)(5003940100001)(6496005)(76506005)(42186005)(189998001)(50226002)(3846002)(72206003)(6116002)(575784001)(33646002)(2906002)(48376002)(1076002)(478600001); DIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR0701MB1280; H:localhost; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; DM2PR0701MB1280; 23:aOEjowDfiY0PUhMhYfJf2k6DxFdAe0O8EWL17DBvPbIcolmBwJARjMd6+2CBOJVxqhvAwuMP6aBET8k3gvSka/D9CSDFnC/fAzpyFbNwG9cg3cn+zH4HdK8w5YXMEgcFaoyTqbLeQN7G2VDWJGACvzmJfVDyvlOYln6lZ1ztNWpFfWSkS65Epsl6Hd0sTS8BSLrN3fQcSeRhNYtkW7YrQ8ceE+J7k39TWxV/esyBk6u5UPx+FMn5h3+DUMpSp6RoYSvi1rdluoIS+nAJXe+N4ZObdh0GO+gqUpQ/fibW6yYSayLarJAT6oJAt3bELTiFoty7xIvuQNtTEHb2wBi9N3ARNDMz8of24SOxxCQRbp1xa5i+SN1qjUVpzgF6ESlgWbzU/uvL2Pi5QsxJEiFmWUNrDSQvQ/xGw3AOEbi0egOxogzf3zzGDMjNr1NRCJlV67iHJqu6OAU+Dn6bUT/ncsMRyQ6axGTXPqSTrQXOZm7O3fag3F4VqKM9vwdIczzibLy4nA0cJr60FLbywFYuYHwmnhKrwMY5zd7ncSZmQTAhkHZINNfibl+ZDdmr1/L8ZiqOIMBKx56vl4MiTNrkFOF8cN9Q8YFq0Qu9BEzbMoUPr40WmuAg8y33rr7QCP7RkI2rkAPZHjUSbykR4WK9mIznCQbbcjDv/HdTByRwMccaV2pg/BWys5n6atjHOzYGmOXDTK7UuBdEEY0dMWujLHerIMlMLv0Czi0d/0epjBOxqzZYUy+sGg87/lTqB7hlEdGyW5WOZ4Fymt/VW6paTeOG/P16WAYGNDTagGSdZvubYIujBzUCVp5coSXDKlWrWMiaOSify52p5ZPX5/jxLTQyyhb43aTb0xw/V/A+LsmS0eg1NfEfdBUXA4vZsDp1JpGCTdhD13Wl/0NDMTMpKHRHmeDZ5Q8QtmPUmu2GbOdG4jRMpDrGFbtEaL5r7QWU62V8ac54xd+c3c74BHV8Bh50KPIiyA5tjnyK3+3UhBsbgPu5TOtlOX2WC2JPeX5WxAzvXY9oIrIxz5QuO/6J5g== X-Microsoft-Exchange-Diagnostics: 1; DM2PR0701MB1280; 6:p0P8iXSD6r+Bw8fWx6bg+kHvZGJKmVDiu+XKGqfiwZ4xMoOgJYGUHgCWk7w7kMfmAkAu5JLTx1wd9lW2tKt5yCsiA2Je6FYnyFkIAZCAlk3s8jVUR1Ss4GcE1IshOg7VVBb7gDvIUM6wEWlAFAcynoL44I9hODJ/vqvZPZ7/tBnWV0GBoatsPb20m24wZ/PhfO+fo74jGYT+FgdXj7Kz1bchrPUHeI54O6RaURDrQ2pCwXHHlcyDUgS9Vql7CpMehRtBupcVIRcX1BsJrio0uwf9TNLkzXwj7GYYUEeo/O3SlJi3JPCBKYUNehKlr9mKuyCiI2NM8USMciPLpcJGZiJMKqe9LkZy33V56OCJeANJVuSI8FBkMfmaVO05GciUIAq+1F5YC311lEso74GcGkeHGtZcLXkmVtS/9lf5XGmVYadXz497TiG7QRLvlbBYxvlWxhBefTHxIO37kkI3NNGzAzgKOiMlbDypua/QIJrMb2/oA8a53C9elHeLaKo0Z/Kdsge4/cOb+eKARcMGAw== X-Microsoft-Exchange-Diagnostics: 1; DM2PR0701MB1280; 5:tKCUyd+9WQm8y3cmMYJae667+Wjt9rMIJhVLRSAYQ21+M9hXPeX24gkUfag8wdCs4YJqEguHe5QsF9lFDgFIYwx803y/XIWJL1QqivTRtYG0L8OD/to8Y78ObEAVgE+wLrTKWWWLa/1RaUXi3Z1Smm78eo6nQ5dELfRgioPVzoQxBEXlIjAKC0GuwFKYGKF9b0+C61DAycq3UhNIS1CiLeoTuVvPlY0/R0jIQHLFfg5cjXq7Rsumsdu+rk6KjcHSCY+1mB5C/lUhJC+YUFfjEFIfUJSayduB3Fj4PK+z9lleDyiAnw487aL9i8j/AQpaL3YLm8yhZ9PhJUZc8lGIxPAmSkPYW3ww9byRQm7VnQccK9VGSEJdpBWHzX3WqcyJI+N8WAFH8bJhk+58827XPBeZbZ2BeLqR7Ef+aDDujLHGoi2y93SPvKiHxQlywOIDZ185oXr/KStXb2AjKHY6rVM0/oeocFO24yhpk85fGmNHgdtW7/fLGHzgCDeyADjN; 24:221Lnonw9kTwGnnB5E4r8QA9e1Nn/7byrKbvU3NIIumvBU4fT7UojofR45JZQTXBPJvhzFUrvUVIdsdW/eebWqzqqS/bPkSRV1xkkrG7j5k= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM2PR0701MB1280; 7:7xD3oJEIk8v41HRTdbZPox6uaqiijqFoY7BkvQCwZynysDkqBoRV0TcjG2AZVQrut8mpSd5742j15q3soEaC83CzOQkZSs91eLUcAk4j0lVI+C5HcnQfWoR6YQK41JReth1s8fyYo02dVnbbbH1yHcGA+uFKSy8dV8Ug+6eipviVmBlq+gRzu9plxUTBgKL2M+ITxfSir65HcijDvsEjnA/r5pBe7e76h6Pq2ak7UZvRZVYNCdbdRTM3uQKiX6GlOiZqI93tuN/7npV9QtfKZp9ch7lhD8vBc6BsphHSnotkPHU0a58DKUoylzFB25xKrZYatuA4fr9skoL4aKqhPA== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jun 2017 12:03:21.2872 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR0701MB1280 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Signed-off-by: Yury Norov --- arch/arm64/include/asm/signal32.h | 3 + arch/arm64/include/asm/signal32_common.h | 27 +++++++ arch/arm64/kernel/Makefile | 2 +- arch/arm64/kernel/signal32.c | 107 ------------------------ arch/arm64/kernel/signal32_common.c | 135 +++++++++++++++++++++++++++++++ 5 files changed, 166 insertions(+), 108 deletions(-) create mode 100644 arch/arm64/include/asm/signal32_common.h create mode 100644 arch/arm64/kernel/signal32_common.c -- 2.11.0 diff --git a/arch/arm64/include/asm/signal32.h b/arch/arm64/include/asm/signal32.h index e68fcce538e1..1c4ede717bd2 100644 --- a/arch/arm64/include/asm/signal32.h +++ b/arch/arm64/include/asm/signal32.h @@ -13,6 +13,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ + +#include + #ifndef __ASM_SIGNAL32_H #define __ASM_SIGNAL32_H diff --git a/arch/arm64/include/asm/signal32_common.h b/arch/arm64/include/asm/signal32_common.h new file mode 100644 index 000000000000..36c1ebc07a97 --- /dev/null +++ b/arch/arm64/include/asm/signal32_common.h @@ -0,0 +1,27 @@ +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#ifndef __ASM_SIGNAL32_COMMON_H +#define __ASM_SIGNAL32_COMMON_H + +#ifdef CONFIG_COMPAT + +int copy_siginfo_to_user32(compat_siginfo_t __user *to, const siginfo_t *from); +int copy_siginfo_from_user32(siginfo_t *to, compat_siginfo_t __user *from); + +int put_sigset_t(compat_sigset_t __user *uset, sigset_t *set); +int get_sigset_t(sigset_t *set, const compat_sigset_t __user *uset); + +#endif /* CONFIG_COMPAT*/ + +#endif /* __ASM_SIGNAL32_COMMON_H */ diff --git a/arch/arm64/kernel/Makefile b/arch/arm64/kernel/Makefile index 7e0c48f858f1..1dd659907f34 100644 --- a/arch/arm64/kernel/Makefile +++ b/arch/arm64/kernel/Makefile @@ -30,7 +30,7 @@ $(obj)/%.stub.o: $(obj)/%.o FORCE arm64-obj-$(CONFIG_AARCH32_EL0) += sys32.o kuser32.o signal32.o \ sys_compat.o entry32.o binfmt_elf32.o arm64-obj-$(CONFIG_ARM64_ILP32) += binfmt_ilp32.o sys_ilp32.o -arm64-obj-$(CONFIG_COMPAT) += entry32_common.o +arm64-obj-$(CONFIG_COMPAT) += entry32_common.o signal32_common.o arm64-obj-$(CONFIG_FUNCTION_TRACER) += ftrace.o entry-ftrace.o arm64-obj-$(CONFIG_MODULES) += arm64ksyms.o module.o arm64-obj-$(CONFIG_ARM64_MODULE_PLTS) += module-plts.o diff --git a/arch/arm64/kernel/signal32.c b/arch/arm64/kernel/signal32.c index c747a0fc5d7d..181cc3012bda 100644 --- a/arch/arm64/kernel/signal32.c +++ b/arch/arm64/kernel/signal32.c @@ -103,113 +103,6 @@ struct compat_rt_sigframe { #define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP))) -static inline int put_sigset_t(compat_sigset_t __user *uset, sigset_t *set) -{ - compat_sigset_t cset; - - cset.sig[0] = set->sig[0] & 0xffffffffull; - cset.sig[1] = set->sig[0] >> 32; - - return copy_to_user(uset, &cset, sizeof(*uset)); -} - -static inline int get_sigset_t(sigset_t *set, - const compat_sigset_t __user *uset) -{ - compat_sigset_t s32; - - if (copy_from_user(&s32, uset, sizeof(*uset))) - return -EFAULT; - - set->sig[0] = s32.sig[0] | (((long)s32.sig[1]) << 32); - return 0; -} - -int copy_siginfo_to_user32(compat_siginfo_t __user *to, const siginfo_t *from) -{ - int err; - - if (!access_ok(VERIFY_WRITE, to, sizeof(*to))) - return -EFAULT; - - /* If you change siginfo_t structure, please be sure - * this code is fixed accordingly. - * It should never copy any pad contained in the structure - * to avoid security leaks, but must copy the generic - * 3 ints plus the relevant union member. - * This routine must convert siginfo from 64bit to 32bit as well - * at the same time. - */ - err = __put_user(from->si_signo, &to->si_signo); - err |= __put_user(from->si_errno, &to->si_errno); - err |= __put_user((short)from->si_code, &to->si_code); - if (from->si_code < 0) - err |= __copy_to_user(&to->_sifields._pad, &from->_sifields._pad, - SI_PAD_SIZE); - else switch (from->si_code & __SI_MASK) { - case __SI_KILL: - err |= __put_user(from->si_pid, &to->si_pid); - err |= __put_user(from->si_uid, &to->si_uid); - break; - case __SI_TIMER: - err |= __put_user(from->si_tid, &to->si_tid); - err |= __put_user(from->si_overrun, &to->si_overrun); - err |= __put_user(from->si_int, &to->si_int); - break; - case __SI_POLL: - err |= __put_user(from->si_band, &to->si_band); - err |= __put_user(from->si_fd, &to->si_fd); - break; - case __SI_FAULT: - err |= __put_user((compat_uptr_t)(unsigned long)from->si_addr, - &to->si_addr); -#ifdef BUS_MCEERR_AO - /* - * Other callers might not initialize the si_lsb field, - * so check explicitly for the right codes here. - */ - if (from->si_signo == SIGBUS && - (from->si_code == BUS_MCEERR_AR || from->si_code == BUS_MCEERR_AO)) - err |= __put_user(from->si_addr_lsb, &to->si_addr_lsb); -#endif - break; - case __SI_CHLD: - err |= __put_user(from->si_pid, &to->si_pid); - err |= __put_user(from->si_uid, &to->si_uid); - err |= __put_user(from->si_status, &to->si_status); - err |= __put_user(from->si_utime, &to->si_utime); - err |= __put_user(from->si_stime, &to->si_stime); - break; - case __SI_RT: /* This is not generated by the kernel as of now. */ - case __SI_MESGQ: /* But this is */ - err |= __put_user(from->si_pid, &to->si_pid); - err |= __put_user(from->si_uid, &to->si_uid); - err |= __put_user(from->si_int, &to->si_int); - break; - case __SI_SYS: - err |= __put_user((compat_uptr_t)(unsigned long) - from->si_call_addr, &to->si_call_addr); - err |= __put_user(from->si_syscall, &to->si_syscall); - err |= __put_user(from->si_arch, &to->si_arch); - break; - default: /* this is just in case for now ... */ - err |= __put_user(from->si_pid, &to->si_pid); - err |= __put_user(from->si_uid, &to->si_uid); - break; - } - return err; -} - -int copy_siginfo_from_user32(siginfo_t *to, compat_siginfo_t __user *from) -{ - if (copy_from_user(to, from, __ARCH_SI_PREAMBLE_SIZE) || - copy_from_user(to->_sifields._pad, - from->_sifields._pad, SI_PAD_SIZE)) - return -EFAULT; - - return 0; -} - /* * VFP save/restore code. * diff --git a/arch/arm64/kernel/signal32_common.c b/arch/arm64/kernel/signal32_common.c new file mode 100644 index 000000000000..5bddc25dca12 --- /dev/null +++ b/arch/arm64/kernel/signal32_common.c @@ -0,0 +1,135 @@ +/* + * Based on arch/arm/kernel/signal.c + * + * Copyright (C) 1995-2009 Russell King + * Copyright (C) 2012 ARM Ltd. + * Modified by Will Deacon + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include +#include +#include +#include + +#include +#include +#include +#include + +int put_sigset_t(compat_sigset_t __user *uset, sigset_t *set) +{ + compat_sigset_t cset; + + cset.sig[0] = set->sig[0] & 0xffffffffull; + cset.sig[1] = set->sig[0] >> 32; + + return copy_to_user(uset, &cset, sizeof(*uset)); +} + +int get_sigset_t(sigset_t *set, const compat_sigset_t __user *uset) +{ + compat_sigset_t s32; + + if (copy_from_user(&s32, uset, sizeof(*uset))) + return -EFAULT; + + set->sig[0] = s32.sig[0] | (((long)s32.sig[1]) << 32); + return 0; +} + +int copy_siginfo_to_user32(compat_siginfo_t __user *to, const siginfo_t *from) +{ + int err; + + if (!access_ok(VERIFY_WRITE, to, sizeof(*to))) + return -EFAULT; + + /* If you change siginfo_t structure, please be sure + * this code is fixed accordingly. + * It should never copy any pad contained in the structure + * to avoid security leaks, but must copy the generic + * 3 ints plus the relevant union member. + * This routine must convert siginfo from 64bit to 32bit as well + * at the same time. + */ + err = __put_user(from->si_signo, &to->si_signo); + err |= __put_user(from->si_errno, &to->si_errno); + err |= __put_user((short)from->si_code, &to->si_code); + if (from->si_code < 0) + err |= __copy_to_user(&to->_sifields._pad, &from->_sifields._pad, + SI_PAD_SIZE); + else switch (from->si_code & __SI_MASK) { + case __SI_KILL: + err |= __put_user(from->si_pid, &to->si_pid); + err |= __put_user(from->si_uid, &to->si_uid); + break; + case __SI_TIMER: + err |= __put_user(from->si_tid, &to->si_tid); + err |= __put_user(from->si_overrun, &to->si_overrun); + err |= __put_user(from->si_int, &to->si_int); + break; + case __SI_POLL: + err |= __put_user(from->si_band, &to->si_band); + err |= __put_user(from->si_fd, &to->si_fd); + break; + case __SI_FAULT: + err |= __put_user((compat_uptr_t)(unsigned long)from->si_addr, + &to->si_addr); +#ifdef BUS_MCEERR_AO + /* + * Other callers might not initialize the si_lsb field, + * so check explicitly for the right codes here. + */ + if (from->si_signo == SIGBUS && + (from->si_code == BUS_MCEERR_AR || from->si_code == BUS_MCEERR_AO)) + err |= __put_user(from->si_addr_lsb, &to->si_addr_lsb); +#endif + break; + case __SI_CHLD: + err |= __put_user(from->si_pid, &to->si_pid); + err |= __put_user(from->si_uid, &to->si_uid); + err |= __put_user(from->si_status, &to->si_status); + err |= __put_user(from->si_utime, &to->si_utime); + err |= __put_user(from->si_stime, &to->si_stime); + break; + case __SI_RT: /* This is not generated by the kernel as of now. */ + case __SI_MESGQ: /* But this is */ + err |= __put_user(from->si_pid, &to->si_pid); + err |= __put_user(from->si_uid, &to->si_uid); + err |= __put_user(from->si_int, &to->si_int); + break; + case __SI_SYS: + err |= __put_user((compat_uptr_t)(unsigned long) + from->si_call_addr, &to->si_call_addr); + err |= __put_user(from->si_syscall, &to->si_syscall); + err |= __put_user(from->si_arch, &to->si_arch); + break; + default: /* this is just in case for now ... */ + err |= __put_user(from->si_pid, &to->si_pid); + err |= __put_user(from->si_uid, &to->si_uid); + break; + } + return err; +} + +int copy_siginfo_from_user32(siginfo_t *to, compat_siginfo_t __user *from) +{ + if (copy_from_user(to, from, __ARCH_SI_PREAMBLE_SIZE) || + copy_from_user(to->_sifields._pad, + from->_sifields._pad, SI_PAD_SIZE)) + return -EFAULT; + + return 0; +} From patchwork Sun Jun 4 12:00:06 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yury Norov X-Patchwork-Id: 101366 Delivered-To: patch@linaro.org Received: by 10.140.91.77 with SMTP id y71csp495494qgd; Sun, 4 Jun 2017 05:04:40 -0700 (PDT) X-Received: by 10.84.198.3 with SMTP id o3mr9392652pld.60.1496577880456; Sun, 04 Jun 2017 05:04:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1496577880; cv=none; d=google.com; s=arc-20160816; b=PwGU+2I7Re+cZm1+lApMWPY5e1dprzM5Lkidwe5eokAPHCwRw4nLaGDgMYGdTqqnSd hhRDit8jrqgDdHCkvYR4lbRG6C0ALFSp2NW+5kwYPXGvszPU16932h12KxAd6FfUUi7h 5G4VziKjkuRU3zjUu8Tu0FoHnkkmNp24p7L40mlTvRMIJJNgfa2lnie9XKX8GYVw0sB2 R9nzG1OjIkHjiD/lXy1ijT2f5zBu5R1s/HBrOn2flQiQmDPTSjGQfje5ZylFtUdse/7n G96vH8nFMVp87TWXK78m7zvd26VCDEynl9c8B+EZRU3hbjSjkx8cndbvWFyvZpbKvKHe MF8Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:spamdiagnosticmetadata :spamdiagnosticoutput:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature:arc-authentication-results; bh=WaaZkO6baYSlrxxFQED9n1Ht/bAupqtebGAg9HTDjAk=; b=jb0CAO3BUw5BKBtEgdphvsScmfSAUAs0Iy48FwSaNzYd/KWF9zLzee4NeFnd9z67du n9cpSebOMJwPZhb+oFErbVEJ8eSILQiZbx9qWBsgDfvlUQbpuHbdn6mQY0Dhvb7nu0yV s1bfeQqkhi/j9cpK3VbqrPRD1OMEIxExrOHXUbhAuw0RXoLBeYu1fUtI1L9AVxfr/Lwi 4H0oOBmh2SgOxU0t9MDEJuz9ziTY/pUQRUSMukrjWEXVS+4rDGTNptGqdkGDahuKrcY0 8zEibRdwBaW6es788RWhWWeh9FnV/edl+6QYxh2X6Gx4mUnIVyHTZCBfXJ2QdmHWThpn C5vA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@CAVIUMNETWORKS.onmicrosoft.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id r15si3336497plj.282.2017.06.04.05.04.40; Sun, 04 Jun 2017 05:04:40 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@CAVIUMNETWORKS.onmicrosoft.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751433AbdFDMEL (ORCPT + 25 others); Sun, 4 Jun 2017 08:04:11 -0400 Received: from mail-bl2nam02on0045.outbound.protection.outlook.com ([104.47.38.45]:24488 "EHLO NAM02-BL2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751415AbdFDMDz (ORCPT ); Sun, 4 Jun 2017 08:03:55 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=WaaZkO6baYSlrxxFQED9n1Ht/bAupqtebGAg9HTDjAk=; b=O9vDseG15SEjqvUpSA36ZY3mP4uQqpbZ5p2S0Q5v+Ge8YZ2/qV4Hnp42PWKxADjCBWwAPhDHXT+UGz0LIWr7mfg+JPElz9ulvAm5EBUm8r/v6JlEythQrzq02SbhpipT6LjG2+22Nbo3/EFx6yiyEwLg0PcpZfv2Av3SiDRpFIc= Authentication-Results: arm.com; dkim=none (message not signed) header.d=none; arm.com; dmarc=none action=none header.from=caviumnetworks.com; Received: from localhost (176.59.55.28) by BY1PR0701MB1272.namprd07.prod.outlook.com (10.160.108.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1143.10; Sun, 4 Jun 2017 12:03:34 +0000 From: Yury Norov To: Catalin Marinas , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, Arnd Bergmann Cc: Yury Norov , Andrew Pinski , Andrew Pinski , Adam Borowski , Chris Metcalf , Steve Ellcey , Maxim Kuvyrkov , Ramana Radhakrishnan , Florian Weimer , Bamvor Zhangjian , Andreas Schwab , Chris Metcalf , Heiko Carstens , schwidefsky@de.ibm.com, broonie@kernel.org, Joseph Myers , christoph.muellner@theobroma-systems.com, szabolcs.nagy@arm.com, klimov.linux@gmail.com, Nathan_Lynch@mentor.com, agraf@suse.de, Prasun.Kapoor@caviumnetworks.com, geert@linux-m68k.org, philipp.tomsich@theobroma-systems.com, manuel.montezelo@gmail.com, linyongting@huawei.com, davem@davemloft.net, zhouchengming1@huawei.com, Andrew Pinski Subject: [PATCH 17/20] arm64: ilp32: introduce ilp32-specific handlers for sigframe and ucontext Date: Sun, 4 Jun 2017 15:00:06 +0300 Message-Id: <20170604120009.342-18-ynorov@caviumnetworks.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170604120009.342-1-ynorov@caviumnetworks.com> References: <20170604120009.342-1-ynorov@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [176.59.55.28] X-ClientProxiedBy: HE1PR09CA0067.eurprd09.prod.outlook.com (10.174.50.139) To BY1PR0701MB1272.namprd07.prod.outlook.com (10.160.108.18) X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BY1PR0701MB1272: X-MS-Office365-Filtering-Correlation-Id: bc53f36c-0bbb-4a2a-9bbe-08d4ab41ba11 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131423075)(201703031133081); SRVR:BY1PR0701MB1272; X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1272; 3:DvWBSxgcaqjK6RHgmFeIu7wk9Q4jSr8tDFs/ZeStT0FhD9VohiXxoaEe3z4A4++9rew8IEKotheejxYbEl8raR80Q1XnpBqP/SYD0emuiFnptqkYCGXxOSd3625DAta/ZTFNzd7rIjViYHMcNBlHxf7GrOhB4YRt2VZeIxisGoo+0S0IbxIDQMpU9DjWBmgPDCvE2sQJtibNAzf9VlwUJQeB7zd//pUkXTL/gstNmVQP1BI3d0ARCrjMCRAi36tjs/dSRFONGG5/h/bdWr9aT4RG7KwJtI1ltdJAB4BBM2nGT4JI1QnQ5vA/d7lZZvowuLaM+JnwjqjJFhCvqzF72g==; 25:spskctj2R7Ji898Ghuw6dlH7XMA96ORWJhXYWVzSRqQDBiVPkovfwiRtBrgbe/Nq+IbEzDF57gQq/DF1OP4yow6m9IeLAcpDPhZB+g4LsTEWJgxkF/eeNjlx4ae8NDakjTkJvKUUkilOJ3MkYsu3kIuQgD/yU8YUxrj5rD8sh273t7Ws3Cjn6b7frGB9kcHexSfm7NB3jFJv78iStXPucMad2dw7CC3svyrvEvbMvSIYXtkLHyurKt1UEBuWiWiTK9BIhcX7XuIC2SHXKwdowviQAUUBkBYOg6Pz91xDBih+r7IX7CDvym6OVihpdsGLIhz/jzSrZzV6uR9U7Ji4kSkGl8KJGFzezVjpULZJ2/WLjLX+FJT+ELF4bcCxfuPEtGrsA3ABD/jewz4pNEu+gegQot4uKlagvv046MV8+sQ1Cx3AXRxleqLTt697qty612UG7xBRxGrxvyEPKZZNgOYgL4Zr5YFw6ArMVqq5q+A= X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1272; 31:uxeYQbGTrDkofBLg6OBq6HvX1DP40XkYcAIjj8sZOo2+EWxeCXmgEsrGP3JmqOtGLhBEaPBZhdyWWTv0OuwhV1XbnMmCXPRsk5/UiZCIQC4919EmzGpAuL9aKDLy6OphUN9g0x+kek8D2+c2KdvlMCpqhhdKrLpSzpBmdRxyDXn0FyuuuYP2PJnlo4xmm+RdeLebi1VXt1t1/Rf22GsL7rvSs5sNpxwtuW+xOmnyoZY=; 20:JbPp0whVQMuPSUvVoiNrxeDCbm8tMjR/BnkYko05GpTF4xR7rWKo24tzHmTvuYgzfxhI4y8kdO2k4RikYj+g0BGfC6LqGLrDDsx2fs8akS3p9CneZUtRA1H8Txu4/YpqwgMuxOub3e3ytKlcx31Q7c5kLHGwEaTW7Rtw9GIrPoyp9h/1pP4EUouwDM5YzLwmGnYIAvcB0UMg09hO4mY204dLFKtJy5t/EBzYqcdBk0NKdThnO3TRkbf0gOx7LUhtPEF79UItxOOqai5DAlIYIrB1tH5a6L4KNIKi11ZcfhHccpFaHaDpYhhAC4PjYu7s9nqWuQuJSX0byl3B3oMqu+ND73FPzJ6vA/SudpHfCgakDqxar43tjaC4pgTnnRZjVU7Akxqq3tZKHvNEEAhCyQld8+kVHUMccJv8XvQ9mLqM0hD210lV4T6gX6CgLcyJE08YRLEQcfCldI5Olg7xyrtnG4IJrmVsXyKqS+aQeF6AvHhcaSgH2N2LaKdUx9V/g5UvNM+BszRqwQs907KvqZ6ByStNzUEqFxsk++ONNnf64HjXVEUNZcSvFp7KgBnEbGgjqdWLX9+rgER0DQQtv9hwfHjXvFShca2ZAREKAAg= 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)(3002001)(93006095)(6041248)(20161123562025)(20161123560025)(20161123564025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BY1PR0701MB1272; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BY1PR0701MB1272; X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1272; 4:3poXaGXDm5duZ4AO9zVeuKEl64rEP30wjiSAv32mfZ5THy7l9ApaAbCdjWhpcYXO+F9OQPq/qnIpNrlawR70xpbofVBn3xLhlYB5K/3w8J2vCGRBOhCXY8YrRnnlqQZAS0x1bVxMKFJyLLmo9YDykG95bkC42KFn+Teg0Ygjb/kw4PcpWs2cHGiP2/5Mfei7Kgl3Nzmxb6RoauSVHmR7K+gOlKZ4iQlbI3rVHV4w42iMQQgEBh7a7PBR6MfKJmtk38bC2iJR4Kjvwq4J6jAwCYEMZ3r3gcQL/VGX0ZS522TOG8HFfdHjncOO3NZJUzczVEasQ6pR2ZNCtNKELk32PbbCYqJrE953rcooHw1eHKH1A0WUPVO3mM0r7BO6SkfRVZG+GVYGhQdZ0m2f15/REHYwjUIgVZJ2te87lWNpNlYYgBw7Y3E0UBcn0VbwrX7lP9MT86N1/ww7CKtkTdHDno7k6ei89SLF272RoeFvajHjcTvDYwy1EHWODBLrks+Uhn46yN9c62uOBLa5EByKDLkcLg5giUDUdn28RB75BH0zqTWe9qkNNQ1/NRbiy1K6Q09m+BIax54Y8+y14gX7VV7A5pMBAo37VuFoK0eR/Wp6CKcNIUStnUY6HVNNs6AK5UPlnL7Cf8y5r8Rw7aXSaF+nRDUZs67/i9fKtn3Dw9RaSY4jfU9WHcTKK0zT8E36Vz8p3P0QHv54UUnvUuTuYApCjOBQZO7XbNDp9HBuuloADOmJKQTR5sufh03kLMtt3QK+2dPkJdpIQ8zvsLJw5bmXrqY19KiyvdZuV63k2d3O17SzOifcwJEziBmaZ1DsR8yceXVLPa2l3i2mq4vsbX+fzeDFvFmWDrGvlvBqkp5uS0caFrwGBcaQo343+CiPoGv4jTUhjKsnkB6Md7WjEQNTuhpa33AyR7HuzMkgWuIk+bx7Mroz4J8GrP3VlNXzN0UgR9RrObCLPRnAD8ZacyEZwPben/MCXEEfnqa72mgxa7D8pQXyp9LzktKZwtZzoWQ03hisEVQMdQ7TXwAO8UEeYcmZ4UfVQUhtPDhz23ESiiETSIImgxsHYnV9ulBRsUN9XJ/Dhcpg+QxOqSdvJo2644di1hzlk1Fk4EtqkdSq1fSucvoh6pWXn0wK8kQ1AEshHzcRzGYmOqJGvy0554c7/bM/jFSVpQxX50hqajArDtuyrvai9cSakNu52tnf X-Forefront-PRVS: 03283976A6 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(6069001)(39850400002)(39400400002)(39410400002)(43544003)(107886003)(6666003)(42882006)(6306002)(2950100002)(6496005)(47776003)(38730400002)(66066001)(36756003)(6486002)(54906002)(478600001)(48376002)(72206003)(2906002)(50466002)(81166006)(76506005)(3846002)(305945005)(53936002)(33646002)(6116002)(5660300001)(42186005)(50986999)(25786009)(50226002)(76176999)(1076002)(4326008)(189998001)(8676002)(7416002)(5003940100001); DIR:OUT; SFP:1101; SCL:1; SRVR:BY1PR0701MB1272; H:localhost; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1272; 23:9DuToce74WP8OnlEGYAxssWbdLS3qnoIxUel4saKUGIBTgL4f+Bbk0jN6Ypn4pZTkMCWYs305gsSSOx/E1b69oMppwl/sFBgT2A5jJdHp+iF+vNXxtHJhlcdeqE49TiPPm9NhiFSTg5B7Q/1nQAzR1leJKmLpKl+BOSUMxarpgWz3Ga17OX8gZZ70ACl4QbVwgKWBugVhqkhExNGVRYlGDg6kkdDAfjVye3zhwAM2zGPriE/Bo6Z6AN6aEu6HXPoCijhEWspxlnsecwp0nR8NYKzhtknvRKLZANBRWcFCArLiXi2LGHAhWEsKmpG4tEGscuB29vT2oAC843NJIJtyj6+pe0NeIWH9m1ElifyUb9BwWL2nj5IrBCcSwx5tjjp9eqfhldQtRrQzL2MKAaPaS/0pEyk3LYmP/LAYNENMSSr8JHr3EXHQwCncxqJ8b1+yWOJEAMf7LncPyLFX64gfTD7ge1EGE7IYRrbBT4sNZ1zvORiVgHRS6yxHCxruREeONlxs2kccKWN8oj01lCXFR0UB1xU58DAPS6C1gZ2mfRWfKtd+UkjvHrUt8sdV7jLZ4GKm+i7Y4x/fJCYxnfvAzo91BuEB2Ta337N3SY9RTkUWXGVhOEmc1QZBXRU3YoMU/H+NlwLL1AjLujHS5PtRDcyyLmN/fvTIWy+5PlwnkRjK/wN/DDQnkwC/O7BR1YNFjFcO0ihxqCXpcaKR7DnOhEH/0L5NYQwv+0BSc/oYhaUo/a7jzqKJyvpVGjrMWm3G9BoXcfgwfkAcMjz0pjvmVQZmV8fo4kUDfeXMy+HZejsUEQylqHnkgslYJzJ6ITnLChyZq1ZsmQ5NHNotti8wNKm8Ktr1WCHep5rb8BfN3sZ+GVwk7VB5k9p7dm+uLhnVufGUOwjPz+PcihfBtGetMuuenrdaKfSI3147J2mm4GDlf+fjzFERsMkF/8uTsSI/Aj1g+Znyjq3Iho958gGc72Bme/T1QAuiRH6t3upmH4qh68rBhG8d3JLkv5/cJgcfAUuxK9PsF2XAEBJFNDxtGHKF2ZrK+s0Jn+fzkOaBj4ESU8Q/JlFC+fqkT0MAoC2 X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1272; 6:RyNFerpbP9WJDTjqDY8k+qsN0Iw+M3Kg4FYycnkM81pOGnq0LyUimLJzlYO1E6qiNkLUQPAlsyivYzlPiSeIm6vMc7zoFl3jZVcdz0jj0k5WISy/cBgyzsbDbxUdD3Cup8rE7r71BSQAMqTuU9/9lD95wd5nVdPCs4r/bGYIhfKZxEmCPpLOGSNsYl6wGIvvIuf7vCDCzIQF/K7hQZp3OjmqfZwgFnICi1ekG70cahxKRG8AlCo+088/z/HT/qSaZ7+PzBpG5KptwJVBeoK5NKQdE07cgOiekKfMaR/MjfXZXfDpD6z8MUC+etyKiGNSSwYl+7q3V99ZvcD3HZWgyaj6/C2UXfCSob5u3RR18WS7QiaabufupqAz6zPiWKtfVxkDwx3MXtn9LeJZqXyx6gjndv9rSjvlR2z7DhKZT9+eJ/WOAw9+qD78rJCoAcHGYOgMXfW078ZKTHE0rphgMF8cz3j4b1WrC9GK9xz+gqgdCORjaxwXZzW5nHWKd0P+TMDe4eUUHL3Pnpd5LsV/gw== X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1272; 5:0LfhlGG1s34l/RO461/4sFj5aHrcBYvkEOwo7JYRVkku8G8uB+/IxL9kOLnH/0i3Q/RenVh7z3yVSBcIxxQn4IJtNzdUU02jYMxwjX+roRdKupQKA1hJS6XqJQGl002m5lS28T3t9CGxWMB9ByhJHDXa6ZT353+Xfp4HXAJoquA03oFmrdbzj1SN+KbSiJFvhkoVbfUCN8m2f4DjlQCGkDeYacWYklpeUesAM5xhUXdJBSLxmmFp1PIC8qXBwG0q46VyUpsBqODABlsR7BlyGYd+wtyq6gjKLPY8o0YP/pzqhY8+wRfSJhQutIISSOI49H199NYd6YRJp1nUbvy0NcNvejeq4334Yttne3XO16i1t3JsQaDNZbPj/xluwklWqN5nBstk9Yx0G96+Mpn3b5BHEPZ0ud/RyoUIGLWwY607rGjrCxpFCSn9T2qcCFo7NGw3h1ifFmRkMMYrO6tpmya/UHF81kFfynxlGpHphDciicBCQdko8QpDoETdAv/p; 24:PzOg8TUqV90SlauQWcwbGl/UHiOujLVpbWMVr5lj6D5IcvzYN/GfLQDbomUZasVkND+CKIzvGGXJPQgJMya9+CzpT3OK6uaACthXzJJWvS0= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1272; 7:+aGtr88JzoCEHErZeRAuSCVB9SrqF/KIRAHEo/pkoNfIOLd1+1wOg9/6hq0456XqBVejAW9zy5bEI5H4lFT5bMNUdUyUSwI7u01LPJZlyN4Svv/vm2vx/gSd5azhLYynb+YZdfqBPhlobU0u56tHXnh5Rx6fipFxx7Wm+sTt7DUE69ueICw0sbQsmycoFxmeqcttKIS1/DgreHAJTp2AOr/nthQ6Lr6zfTH6Gy4z2OIxQ4EZAikKV/30Ytz0P/EiRb1IgTTK5f9gcRKYwIhsWuAqnVlV2dsjIVEZnSB/lnk2sIyaUsW1Cts08GP3RkMqhk8Q2XLM+U3FAwuzVH6owg== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jun 2017 12:03:34.2303 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR0701MB1272 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Andrew Pinski ILP32 uses AARCH32 compat structures and syscall handlers for signals. But ILP32 struct rt_sigframe and ucontext differs from both LP64 and AARCH32. So some specific mechanism is needed to take care of it. Signed-off-by: Andrew Pinski Signed-off-by: Yury Norov --- arch/arm64/include/asm/signal_ilp32.h | 38 ++++++++ arch/arm64/kernel/Makefile | 3 +- arch/arm64/kernel/entry_ilp32.S | 22 +++++ arch/arm64/kernel/signal.c | 3 + arch/arm64/kernel/signal_ilp32.c | 170 ++++++++++++++++++++++++++++++++++ 5 files changed, 235 insertions(+), 1 deletion(-) create mode 100644 arch/arm64/include/asm/signal_ilp32.h create mode 100644 arch/arm64/kernel/entry_ilp32.S create mode 100644 arch/arm64/kernel/signal_ilp32.c -- 2.11.0 diff --git a/arch/arm64/include/asm/signal_ilp32.h b/arch/arm64/include/asm/signal_ilp32.h new file mode 100644 index 000000000000..3c6d737c07c0 --- /dev/null +++ b/arch/arm64/include/asm/signal_ilp32.h @@ -0,0 +1,38 @@ +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include +#include + +#ifndef __ASM_SIGNAL_ILP32_H +#define __ASM_SIGNAL_ILP32_H + +#ifdef CONFIG_ARM64_ILP32 + +#include + +int ilp32_setup_rt_frame(int usig, struct ksignal *ksig, sigset_t *set, + struct pt_regs *regs); + +#else + +static inline int ilp32_setup_rt_frame(int usig, struct ksignal *ksig, sigset_t *set, + struct pt_regs *regs) +{ + return -ENOSYS; +} + +#endif /* CONFIG_ARM64_ILP32 */ + +#endif /* __ASM_SIGNAL_ILP32_H */ diff --git a/arch/arm64/kernel/Makefile b/arch/arm64/kernel/Makefile index 1dd659907f34..f3bf1b74bb4a 100644 --- a/arch/arm64/kernel/Makefile +++ b/arch/arm64/kernel/Makefile @@ -29,7 +29,8 @@ $(obj)/%.stub.o: $(obj)/%.o FORCE arm64-obj-$(CONFIG_AARCH32_EL0) += sys32.o kuser32.o signal32.o \ sys_compat.o entry32.o binfmt_elf32.o -arm64-obj-$(CONFIG_ARM64_ILP32) += binfmt_ilp32.o sys_ilp32.o +arm64-obj-$(CONFIG_ARM64_ILP32) += binfmt_ilp32.o sys_ilp32.o \ + signal_ilp32.o entry_ilp32.o arm64-obj-$(CONFIG_COMPAT) += entry32_common.o signal32_common.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/entry_ilp32.S b/arch/arm64/kernel/entry_ilp32.S new file mode 100644 index 000000000000..a8bb94b3901b --- /dev/null +++ b/arch/arm64/kernel/entry_ilp32.S @@ -0,0 +1,22 @@ +/* + * ILP32 system call wrappers + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include + +ENTRY(ilp32_sys_rt_sigreturn_wrapper) + mov x0, sp + b ilp32_sys_rt_sigreturn +ENDPROC(ilp32_sys_rt_sigreturn_wrapper) diff --git a/arch/arm64/kernel/signal.c b/arch/arm64/kernel/signal.c index 9f2ea60b9fac..b78f4c255636 100644 --- a/arch/arm64/kernel/signal.c +++ b/arch/arm64/kernel/signal.c @@ -35,6 +35,7 @@ #include #include #include +#include #define RT_SIGFRAME_FP_POS (offsetof(struct rt_sigframe, sig) \ + offsetof(struct sigframe, fp)) @@ -325,6 +326,8 @@ static void handle_signal(struct ksignal *ksig, struct pt_regs *regs) ret = compat_setup_rt_frame(usig, ksig, oldset, regs); else ret = compat_setup_frame(usig, ksig, oldset, regs); + } else if (is_ilp32_compat_task()) { + ret = ilp32_setup_rt_frame(usig, ksig, oldset, regs); } else { ret = setup_rt_frame(usig, ksig, oldset, regs); } diff --git a/arch/arm64/kernel/signal_ilp32.c b/arch/arm64/kernel/signal_ilp32.c new file mode 100644 index 000000000000..b9a3372b0142 --- /dev/null +++ b/arch/arm64/kernel/signal_ilp32.c @@ -0,0 +1,170 @@ +/* + * Based on arch/arm/kernel/signal.c + * + * Copyright (C) 1995-2009 Russell King + * Copyright (C) 2012 ARM Ltd. + * Copyright (C) 2017 Cavium Networks. + * Yury Norov + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + + +#define ILP32_RT_SIGFRAME_FP_POS (offsetof(struct ilp32_rt_sigframe, sig) \ + + offsetof(struct ilp32_sigframe, fp)) + +struct ilp32_ucontext { + u32 uc_flags; + u32 uc_link; + compat_stack_t uc_stack; + compat_sigset_t uc_sigmask; + /* glibc uses a 1024-bit sigset_t */ + __u8 __unused[1024 / 8 - sizeof(compat_sigset_t)]; + /* last for future expansion */ + struct sigcontext uc_mcontext; +}; + +struct ilp32_sigframe { + struct ilp32_ucontext uc; + u64 fp; + u64 lr; +}; + +struct ilp32_rt_sigframe { + struct compat_siginfo info; + struct ilp32_sigframe sig; +}; + +static int restore_ilp32_sigframe(struct pt_regs *regs, + struct ilp32_sigframe __user *sf) +{ + sigset_t set; + int err; + err = get_sigset_t(&set, &sf->uc.uc_sigmask); + if (err == 0) + set_current_blocked(&set); + err |= restore_sigcontext(regs, &sf->uc.uc_mcontext); + return err; +} + +static int setup_ilp32_sigframe(struct ilp32_sigframe __user *sf, + struct pt_regs *regs, sigset_t *set) +{ + int err = 0; + /* set up the stack frame for unwinding */ + __put_user_error(regs->regs[29], &sf->fp, err); + __put_user_error(regs->regs[30], &sf->lr, err); + + err |= put_sigset_t(&sf->uc.uc_sigmask, set); + err |= setup_sigcontext(&sf->uc.uc_mcontext, regs); + return err; +} + +asmlinkage long ilp32_sys_rt_sigreturn(struct pt_regs *regs) +{ + struct ilp32_rt_sigframe __user *frame; + + /* Always make any pending restarted system calls return -EINTR */ + current->restart_block.fn = do_no_restart_syscall; + + /* + * Since we stacked the signal on a 128-bit boundary, + * then 'sp' should be word aligned here. If it's + * not, then the user is trying to mess with us. + */ + if (regs->sp & 15) + goto badframe; + + frame = (struct ilp32_rt_sigframe __user *)regs->sp; + + if (!access_ok(VERIFY_READ, frame, sizeof (*frame))) + goto badframe; + + if (restore_ilp32_sigframe(regs, &frame->sig)) + goto badframe; + + if (compat_restore_altstack(&frame->sig.uc.uc_stack)) + goto badframe; + + return regs->regs[0]; + +badframe: + if (show_unhandled_signals) + pr_info_ratelimited("%s[%d]: bad frame in %s: pc=%08llx sp=%08llx\n", + current->comm, task_pid_nr(current), __func__, + regs->pc, regs->sp); + force_sig(SIGSEGV, current); + return 0; +} + +static struct ilp32_rt_sigframe __user *ilp32_get_sigframe(struct ksignal *ksig, + struct pt_regs *regs) +{ + unsigned long sp, sp_top; + struct ilp32_rt_sigframe __user *frame; + + sp = sp_top = sigsp(regs->sp, ksig); + + sp = (sp - sizeof(struct ilp32_rt_sigframe)) & ~15; + frame = (struct ilp32_rt_sigframe __user *)sp; + + /* + * Check that we can actually write to the signal frame. + */ + if (!access_ok(VERIFY_WRITE, frame, sp_top - sp)) + frame = NULL; + + return frame; +} + +/* + * ILP32 signal handling routines called from signal.c + */ +int ilp32_setup_rt_frame(int usig, struct ksignal *ksig, + sigset_t *set, struct pt_regs *regs) +{ + struct ilp32_rt_sigframe __user *frame; + int err = 0; + + frame = ilp32_get_sigframe(ksig, regs); + + if (!frame) + return 1; + + err |= copy_siginfo_to_user32(&frame->info, &ksig->info); + + __put_user_error(0, &frame->sig.uc.uc_flags, err); + __put_user_error(0, &frame->sig.uc.uc_link, err); + + err |= __compat_save_altstack(&frame->sig.uc.uc_stack, regs->sp); + err |= setup_ilp32_sigframe(&frame->sig, regs, set); + if (err == 0) { + setup_return(regs, &ksig->ka, frame, ILP32_RT_SIGFRAME_FP_POS, usig); + regs->regs[1] = (unsigned long)&frame->info; + regs->regs[2] = (unsigned long)&frame->sig.uc; + } + + return err; +} From patchwork Sun Jun 4 12:00:07 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yury Norov X-Patchwork-Id: 101367 Delivered-To: patch@linaro.org Received: by 10.140.91.77 with SMTP id y71csp495503qgd; Sun, 4 Jun 2017 05:04:40 -0700 (PDT) X-Received: by 10.98.94.134 with SMTP id s128mr10506189pfb.43.1496577880871; Sun, 04 Jun 2017 05:04:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1496577880; cv=none; d=google.com; s=arc-20160816; b=aegUoLhbAWiV+g9XN9XUx5exYK9mB36a/TokkBbyBn/eaIdnpcYrGSLkbWrLTiYXi4 Cfh89vyIOReCOlzn2RLpNq9pxZuMuygaeoZU2c+rudbMzickYJtOgunj65gX6u/qEbTD B8hGVnCy6ZfZiW9T39/eb9phPucMDBgvwIu2ZYkDZNW4n2kS0DurU4TlQWR4RNLSMcm6 ezJvtP/Dcy8AiqminVKTYSA6TrqFn2Rzl7QTqlcp3qevZgYpHCp4s2tZBIgPb0H5E7l0 pgWIQuwXjFfQFlGjIjQ3ZkScn/dg07aeP1EI1mMibQUecDwDi1WvkmnUmfN4Z6e2rppy L27A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:spamdiagnosticmetadata :spamdiagnosticoutput:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature:arc-authentication-results; bh=aILKQS0Yy4EPMF4XbX5PBnWpLzCC0Lf23oSQDggRzYE=; b=EyAaFPZz+pDJmffl4051hJL/r+BdNEm1yDEFTn7xOALmOzxf7Pb+xNXtExxE0dnXcN t3tR54IO/XqADU54MrA+oENsMEhkP4FPJwziS+mR5jdgBDlvYkz22OlFYUONWYjKe+3r i21M5mUl9TrBt1pgfKxEJ8+Ta1fxj1jj0jioTCgZYWn6RD7SVlXfQ5r6Og0aoaZwFiLN EJzmrXzyK5r5tZGeGFvNx2wmidPwdxH8qFLI48Sk4YhC/HQUbadwmgFerwm34fopfnX8 bDmGDdLrtWiUminrswvYTMDeYDoE9CuYnPXN0ueUOiR/nWc3kGmfOgtGfDMGiE4AaPpO cGrg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@CAVIUMNETWORKS.onmicrosoft.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id r15si3336497plj.282.2017.06.04.05.04.40; Sun, 04 Jun 2017 05:04:40 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@CAVIUMNETWORKS.onmicrosoft.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751172AbdFDMEX (ORCPT + 25 others); Sun, 4 Jun 2017 08:04:23 -0400 Received: from mail-cys01nam02on0041.outbound.protection.outlook.com ([104.47.37.41]:52159 "EHLO NAM02-CY1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751416AbdFDMDz (ORCPT ); Sun, 4 Jun 2017 08:03:55 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=aILKQS0Yy4EPMF4XbX5PBnWpLzCC0Lf23oSQDggRzYE=; b=d+WU7E8iBlU6eejyv8zbW35BNwLVo2p9qlf5uKR7StlFHdALg4N3aPRzdR0NZ3vyEuZpaCGtAZwcF93dAMXlDxiS0YTUGgzW804k026za/uZRX6DAVIpZf+t+cCW+TuCi12wxoUt482LLdQoykiiEonglVxmr7o3iiWh6+784ec= Authentication-Results: arm.com; dkim=none (message not signed) header.d=none; arm.com; dmarc=none action=none header.from=caviumnetworks.com; Received: from localhost (176.59.55.28) by BY1PR0701MB1271.namprd07.prod.outlook.com (10.160.108.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1143.10; Sun, 4 Jun 2017 12:03:47 +0000 From: Yury Norov To: Catalin Marinas , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, Arnd Bergmann Cc: Yury Norov , Andrew Pinski , Andrew Pinski , Adam Borowski , Chris Metcalf , Steve Ellcey , Maxim Kuvyrkov , Ramana Radhakrishnan , Florian Weimer , Bamvor Zhangjian , Andreas Schwab , Chris Metcalf , Heiko Carstens , schwidefsky@de.ibm.com, broonie@kernel.org, Joseph Myers , christoph.muellner@theobroma-systems.com, szabolcs.nagy@arm.com, klimov.linux@gmail.com, Nathan_Lynch@mentor.com, agraf@suse.de, Prasun.Kapoor@caviumnetworks.com, geert@linux-m68k.org, philipp.tomsich@theobroma-systems.com, manuel.montezelo@gmail.com, linyongting@huawei.com, davem@davemloft.net, zhouchengming1@huawei.com, Bamvor Jian Zhang Subject: [PATCH 18/20] arm64: ptrace: handle ptrace_request differently for aarch32 and ilp32 Date: Sun, 4 Jun 2017 15:00:07 +0300 Message-Id: <20170604120009.342-19-ynorov@caviumnetworks.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170604120009.342-1-ynorov@caviumnetworks.com> References: <20170604120009.342-1-ynorov@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [176.59.55.28] X-ClientProxiedBy: VI1P190CA0017.EURP190.PROD.OUTLOOK.COM (10.165.188.158) To BY1PR0701MB1271.namprd07.prod.outlook.com (10.160.108.17) X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BY1PR0701MB1271: X-MS-Office365-Filtering-Correlation-Id: 6ffb4ab9-5ec1-4ac8-44d5-08d4ab41c1a4 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131423075)(201703031133081); SRVR:BY1PR0701MB1271; X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1271; 3:g7qqeSXdY8DR3k3SBOSpJYywe9befiP6OjKW14zfp5R57GY3Sd8DFVHAICaq09wS6z4dj0ueCP7wKcd64X0fYaTjqAA3bEFMncxzBNo7gHZAeGa7pw7KA6m2lD0I9uXK/K5yKZgTJXJLN8RrcI8t33X+L3QqWjWzvPF7RHBV2HHWThtcxgrU0WCZMbVDM5+XMKEYjKZRlFUVQitoCJNtMuwMaMkypI7H8xqcPS6SR0S3Wm88fJAFxI+eBP5UNDWY61fKmNce7AYrWNRxCTtul+qZ+grQq4hPk9aXJLk9F5gGJHuxLShakPf9dyTNOrCoDzo6repIEm0aBdlvue9Xtw==; 25:+vbHXpIzkQ6JXdjts5MlvFWeY0QSLbwI1oK7XL0j3/Jq4VyE7zXD7mI3D3bNauHzRugPk2f31f7i/u8THTfQ+BqGzm99svNXiHtZ3tzmB7UukjlkZ+bDxW/FjM/m2GTnpIU7UhMPJDUUH+yo/axCBYAZVaTFxCZfK1szzN5GTrlvZG3k/zcOPgER4KDcNxJFbisJmA0crLMYTgDCFFFGXEW0OyUdm9ffYNqwb7A7YdoRbqq8y2PN4Wq/TtjuHdMy34XmPk+YQLEAL2Dfe/xfrNuVKYZdT2+67M1lIdm5IT6MEDHTUudnukIifQnnc+5nyEW81P1IAPq5d7z7s5NuSCFiwv4q+EraPz8ggpSbHvqEfnxDtA8m5ScK9KRUZTF4YoEYjykTexdiiqrii5mw83HNh4Rvn+zPVwzmVvHmlEKaxe6PDaO4CMbX3cuDXAGpcnJAM3YJ/LgDDaBSdNy8KK41smbJmtHLig1ziFlU7+E= X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1271; 31:qcwSURZ6f8s9UUcep1m+wV/CSr4JiVDounEfeslajOvZZ76Uh+huLzXX7B0aJCpwx4/3pTVLe4vFQGMFm2OuQQJ3+zlspweqooulZRz7ZxVGvYtnaWUvjAdTfaJPr2JE848xUqNCGjpWvGvlWxO8Erosme90jA5LmZcoWjun7kYplyBi6AxVDxAMIQkgBVcDe0tHRQdbdKVmGO79Y/HC+T3TEV1zljd2VP4r3v6q63Q=; 20:JXlI7WbpmS2U+1KkzqBQtIM/IeGNuP/aGaUQzf/52+bXUJf65FR2okrvEl5n6PpSg79Znq3fkvD4BBMe3M03QzA9NZ4AuXjR98w5LzWB5KuKRq7RrR5QxFoeM1tCNjiwrwYK6pk9H0WS3qDEN2R9d+8WZsSW+a5X43Pqi3Ib/TbRA+qviGuVUtMAILlcB1WMNdKadXfrJOv+s5zSkmXi7pwrS8OxD9mnUdqCTpZi0Nav/YzJyb9hiFanbzR57mPAfiXXrbEYUYV5XLf9RpzSlXv2lxDEu8rsuVB4UI69uSB8+AN5ZVWeUCNf0mMv2t5Y91G3KOvsLJHd0XqQvAiCIRQr8YW7pm4tGqOlPVSWqGE2A+ou+C3b8mraWUVnvHaux8dS3XfzbFnGgdPeJLH0Z2MAMbXKH7x5OQt0QjxJUZe/Fb1/0QBXMwY4iClnG3EvfGl98CzSNdGKRwehDdlqHsAC5HLy6xed2R937SEtIofwWl1LFcxiTDdqY6dYmuXHzNEJqhJM5Nb72q5tL/wohSX3HyKMsg2Ht4dvyAkpBrcmNqA3IgO3pHWCwiW8zL13yV5/BD4Z8sd2icTMAMmHAfEezS1o1L2caUN1k4L2GU8= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(50582790962513); 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)(20161123564025)(20161123560025)(20161123555025)(20161123562025)(20161123558100)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BY1PR0701MB1271; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BY1PR0701MB1271; X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1271; 4:nPPvnLgv0cXyzoWdVRatpM7b9OQP4LTxZ4kD4F0PIA2esNxLl3IuUPVxQuYhaloP0YQpsJ5ENCp4ZYgLg56kxXmUTi2oSffO1Os1fZxa4YtHD7xOvzgwzPrb93rZdiuchZtq+sPI0SeosXHzNyajBPhOybRLFZ1gYU6PZVU10T/8G8fMrdpw7QiifpStesCHIYRWI01whOfM8GsAoOE4opw4i3+bs51tfSoHmy6Gpi50MQdX8Zray8GiBNIbPSiQpz5c1Gblve0G5jI7fSjbmTNmoggvRGxjW1bjTMchP6W5T+f3JMMtxf7BAiLLHqoPBkWhu2sHqjjlS0CSADMaNmU4kHYuKdwdXlt/7OTrb4LeHvhN5/p/FaB+UvcCAITB3vNB8mKZv+5CKIRxKCAj0j1cGTYNWxTXh4csJ39d2DkqpGc5DXAtSei8Z4iBW0BIFkhdbQ/bYKosPPNmrUxcdaqmnCAqJNPynH5qszDo9vA45g2joaXVf6snT3hycV/SABeg0UAL2zvO3a6sEA9385ExTWoht/ADYacybgAiGAMWSGqFggvweRRu+1oj/Z0jv7B7IFAEzR7v4Hq085jZJl46TusP7XT3uZ8qzp+5TQ7ryRyo4aiu17TRiLM6cT1RJJhn1ndQyvgswA5pBZuoBJ+NXK8boHifBsAhrOfyM4vg+ejzzaz7PGPALT4sW6D9cmFxstQopOp/snDfy5yN37oHutc5agcwbncyS1yAYgxQVzpm4aG0s+qx7iK8qlmMmCSYZygxyQw+EgmxPnIq1HFGW5febSYt8HuesafrG+En887wI85s5+E23tSSB8fUjIsrN5XltOmUq6W+atQyaZ04bOgVQqcuLLvALtefA4TjvsODKzBm1qw5/ekGAalyxJ1AGl6BhsovXnqRCoSMkmnqtJ7sYyxCQtF/kx1vuw+YEcquovk6nwE2s3Dyu6zcrcQdLKQnhZuZKxLEq0GAGBpa4mVHfvCPHB5XLgm0HldqR0TyC2ZP2jl74o7yhd4ArfvC6yXmehgMgVJVlAUq5mPl+2ZHxrZ3Ocx2bcihsBUgFqyoYNfN1nOFDP5BU7YrWWBNqLu4KtqEzVEf0b7LZphKecrfnSybtyorNph4yB45Ob1qwYbcaiI+BgZ6GvRhBDVhqpXrgME1MRdp0SzPyA== X-Forefront-PRVS: 03283976A6 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(6069001)(39410400002)(39400400002)(39850400002)(81166006)(8676002)(76176999)(50226002)(42882006)(2950100002)(48376002)(50466002)(6666003)(50986999)(33646002)(47776003)(5660300001)(189998001)(305945005)(7406005)(53936002)(7416002)(36756003)(76506005)(66066001)(42186005)(54906002)(5003940100001)(25786009)(2906002)(1076002)(6116002)(3846002)(6496005)(72206003)(6486002)(38730400002)(478600001)(4326008); DIR:OUT; SFP:1101; SCL:1; SRVR:BY1PR0701MB1271; H:localhost; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1271; 23:8cOQ9PnjPbt/yVY+N7XQm/5eKLyqyFXMg1gPeueyCMMSr/gEG27h9va2B3womS9O/RiFdNMSWwwF/sxx7rCq0P6PE8Ca2ZnDnHGGbMk/EHOjkPMgdN5QXUqG+2ST0PZfN85wJ3RVNc1jDSFr7MRav5lU5/Td4TGmJlOiJbxdn4XPm10+azTpsuqQt2siGVyHsM1/gXJWS2ahkVOQfPyZSE5xzclFVZ5psaaJxpeqsvET8ezyw11rMchKCj4o4JovbTKk0ePF+nTsCYBhNSd5xT+HEYjfjueef7jYvdNBmtL+SjLiGJrmLFhofmzjN2LM1BptGSBvS6xHXAEqqeP+QpxjRtLDswueD9nye5olFoQYL/rwQLD06arL2bdn+EaVqnlY7Y0fOt5ksYflIvgKfEMg1Tq/bpNKD9crKT4Rfc27UfBik6ZM8rW/M/xFORV7VmF7OAhxi3Hbi+50v9vcuuo4Z+O8b6k08ZP3o3ojwWPAzZiXRFsYyITOOwEfaD6rr/M+LDWrfizLFVJX9Gsba57B6kb/wpUWvysyRmdahsIQ0m9HZfBp3EDSej5PFdK5t7iJOij8BwN9abrKmjkco3BOeMZlrHmbPfpIoyOHN8XSEWMZL64oLeNW6oikhF+2jgmGzY/xtUxn4+0+5gTJwB7ntzMTZZmDl42BBjGmDPSgFz0Q8z+XtsHKcf9L00+LatZnnit0Jk6ffgu4J0sadnbB+fE8KaHJ0XJlzhODvhc/YwP6emIjMiaAsIhFeCMM8EXimWY57r9R+cc7JlVAw/dWArxr7ORMgF26QLmEA8iQSw97uVmA8bm5w6TA9fgNtIGRoo6niAnYjm/BukGpz+RyP9F+lIX8SSHvvhCRKjdDiPMm+hN2jvVZPlTirMoTst9l0bAqx+a1MK4c8dRgGAHK121M2Ies5TeLuH6HgOTXiHhH+lXWc9QgQc1MzaD5IZwl0eBJ36MheZQca+iX5vLE2lS5gwElFv2uRXswhAkVBSwxmmMybFmZZJ7kXscRvWyFJX1Fqnr4eHp1L2AXgg== X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1271; 6:yvoiTqybR+TtOqk3DyenO7UrFa6nedCa3uERe8p23+517v9DXRbpRgBdB+KkYqVl548AnYBC9+hjQKSHIGTaVUncUrEyUQbqO8lYi79i+3kpVf/T8m9fgLy855H9W+WcvwWdmZP29zf3HqJgc5LQfgJLKiLqNnuNdSuIArnkTx3NGFq0q08g4jcdKRwAXPv50JwRh/IjXyC0r2TFKjk/YvqI+52MzvVRHmocimiRiue0+d5Ol6is+7/loSzFEEnat4F8DpAjby8IzskLudVT0QmlMx85Vysw5XAuGTu8AHG+4+6Da+Qh2TQ84mGDKE6Ejut3livCxgE83m2Yolh7+ohFOf0y1sSpT1eB44zaEMwvH+LQPqw3L7wJu10xGhv7T37rBNrnXXNAUFLpcw1Lf8nly8euyIKnb6+biVAc9FwsGYpJJ2qwY3gOqZdgVcy2L5+liKTBXCp67usXIQ+Kxvkbaq8XE1rvrK9Zg37vuxVXgLtpSE+rk3jZ6IG7E9/cJMXNZfxkulH5e1xou+y9rQ== X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1271; 5:jkfL9+AA3EZ9pmWhQ5UAcJIAOLHumVaJULH3pBRu30PY7LXy8iIuN+e9VGCGvs70LYVwjrBan3XcwCZ5MGXKDk1OGyk1XDzgIip+fzZrkcSVgDHsLzwXo7vuNh7u9BrROIpxCl/T0uA9RrD/Mh+UR005zTs9n2I9y4x+MvntWP9RpAy39hVsVy8I75oRu8PqUY38WXs1r+5lJn0desKnizrbPzdvl+/L6AXw3RCwsicPVQ+Hr050vJ6MD98aKiFrV5LC9zCERwBGWSOgQrOw12oFDO6LAgNZxVr9s596FikgnvZBnBHjzUOIOhsNn2f5jrwi6eANGlN2lgZ1LkwKoHHfmaQz4BUuUu2rpcYHP/gut9ZNU3oC+ZcI2m1Y2ro+IlACtagWEQV0CrDVLkdAZk0HKyJg7KQgyQ/kSUyKJ11v8W/AhXEE4d/2lV98+FRi7rxu61noTA/5nJ5L8RfsXPpfUgnvTi1CZGkW0p1uqg5W8oRZYS7LnpwKv3keHpnR; 24:W3kNswOGWrn3oZMHeak91ags1LYrV5z01D38lfekA+pPvSgcfQVfu6rqGqhcQpwAXienaLVDHRxNndGAIb+rBPW7YH0LLg4ZieF/0A390l0= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1271; 7:v+SF2yTHckiOkqomV8d4rOfbw7NMREMQsr6kgt899CvzfA5mvbcO93Ng4BQcMMB63/bfeNonbUw8HaA2JPtnApqOLBG+1MGeHvNBUygCmj5WugrOGb8cnaipJjmfZU+zc2T0OhK+xecPhWFU1SNv5pQEOcqVE7fiTRbXx1wkCzqcsoXLzWZcYoK/XajDlhRekeZaiyX6c2MT7IYPzJR+k9QoJiCFqlHTngIWicZa6H+KCdiZ8Kh6jEn/8fwGU9u8ZZvUOAYmbvnSqeENoaZIl4VKQDy/O38PKPnOONugBKve61/UlElMORTUZ4mKdYsDSlJQMvYeTtjyOwsZQHENEA== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jun 2017 12:03:47.0449 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR0701MB1271 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org ILP32 has context-related structures different from both aarch32 and aarch64/lp64. In this patch compat_arch_ptrace() renamed to compat_a32_ptrace(), and compat_arch_ptrace() only makes choice between compat_a32_ptrace() and new compat_ilp32_ptrace() handler. compat_ilp32_ptrace() calls generic compat_ptrace_request() for all requests except PTRACE_GETSIGMASK and PTRACE_SETSIGMASK, which need special handling. Signed-off-by: Yury Norov Signed-off-by: Bamvor Jian Zhang Signed-off-by: Chengming Zhou --- arch/arm64/kernel/ptrace.c | 65 ++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 63 insertions(+), 2 deletions(-) -- 2.11.0 diff --git a/arch/arm64/kernel/ptrace.c b/arch/arm64/kernel/ptrace.c index e2b7c040bf84..28f96765e8cc 100644 --- a/arch/arm64/kernel/ptrace.c +++ b/arch/arm64/kernel/ptrace.c @@ -765,9 +765,11 @@ static const struct user_regset_view user_aarch64_view = { .regsets = aarch64_regsets, .n = ARRAY_SIZE(aarch64_regsets) }; -#ifdef CONFIG_AARCH32_EL0 +#ifdef CONFIG_COMPAT #include +#endif +#ifdef CONFIG_AARCH32_EL0 enum compat_regset { REGSET_COMPAT_GPR, REGSET_COMPAT_VFP, @@ -1223,7 +1225,7 @@ static int compat_ptrace_sethbpregs(struct task_struct *tsk, compat_long_t num, } #endif /* CONFIG_HAVE_HW_BREAKPOINT */ -long compat_arch_ptrace(struct task_struct *child, compat_long_t request, +static long compat_a32_ptrace(struct task_struct *child, compat_long_t request, compat_ulong_t caddr, compat_ulong_t cdata) { unsigned long addr = caddr; @@ -1300,8 +1302,67 @@ long compat_arch_ptrace(struct task_struct *child, compat_long_t request, return ret; } + +#else +#define compat_a32_ptrace(child, request, caddr, cdata) (0) #endif /* CONFIG_AARCH32_EL0 */ +#ifdef CONFIG_ARM64_ILP32 +#include + +static long compat_ilp32_ptrace(struct task_struct *child, compat_long_t request, + compat_ulong_t caddr, compat_ulong_t cdata) +{ + sigset_t new_set; + + switch (request) { + case PTRACE_GETSIGMASK: + if (caddr != sizeof(compat_sigset_t)) + return -EINVAL; + + return put_sigset_t((compat_sigset_t __user *) (u64) cdata, + &child->blocked); + + case PTRACE_SETSIGMASK: + if (caddr != sizeof(compat_sigset_t)) + return -EINVAL; + + if (get_sigset_t(&new_set, (compat_sigset_t __user *) (u64) cdata)) + return -EFAULT; + + sigdelsetmask(&new_set, sigmask(SIGKILL)|sigmask(SIGSTOP)); + + /* + * Every thread does recalc_sigpending() after resume, so + * retarget_shared_pending() and recalc_sigpending() are not + * called here. + */ + spin_lock_irq(&child->sighand->siglock); + child->blocked = new_set; + spin_unlock_irq(&child->sighand->siglock); + + return 0; + + default: + return compat_ptrace_request(child, request, caddr, cdata); + } +} + +#else +#define compat_ilp32_ptrace(child, request, caddr, cdata) (0) +#endif + +#ifdef CONFIG_COMPAT +long compat_arch_ptrace(struct task_struct *child, compat_long_t request, + compat_ulong_t caddr, compat_ulong_t cdata) +{ + if (is_a32_compat_task()) + return compat_a32_ptrace(child, request, caddr, cdata); + + return compat_ilp32_ptrace(child, request, caddr, cdata); +} +#endif + const struct user_regset_view *task_user_regset_view(struct task_struct *task) { #ifdef CONFIG_AARCH32_EL0 From patchwork Sun Jun 4 12:00:08 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yury Norov X-Patchwork-Id: 101368 Delivered-To: patch@linaro.org Received: by 10.140.91.77 with SMTP id y71csp495672qgd; Sun, 4 Jun 2017 05:05:12 -0700 (PDT) X-Received: by 10.98.11.196 with SMTP id 65mr15353089pfl.110.1496577912760; Sun, 04 Jun 2017 05:05:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1496577912; cv=none; d=google.com; s=arc-20160816; b=D2ywTc64vDcjUHkmuMkkZd9qV7VPB8Cltq3HnYusuffjH2ygOuNnrOIbrHnFWodFBD 4NUK1GvbXH+Cr6oLhhylMPHx8ax8hftOhLO6vaSXAGYu1+BGH9aSoJfewP+fCZbaF9xe 9rVsRMX0i/yH0hpf9MoaPRbKj0tCJsExm400qG83I0F8KHpFY3faZkX0MWQf2N6eUcxu vPzV1/VuB5+7EBx+FZepBIe9D0scymxggEg7qtxa7SBwjnUshQuGzFP5W/4GxlCtl+3E HFL5JOcZ/8Gn3iTOODxigg2n28/DxDNPRt+9twfrqSmZchhW1jWtx9y7+p0M+qvEWvpt KuTA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:spamdiagnosticmetadata :spamdiagnosticoutput:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature:arc-authentication-results; bh=w6nJxZrZUp2CV7206otmTceECxrRgUD/8YmXL8DLFf8=; b=NoH4+jfuv6OwdUY6wpStbzvMJzZDDbsmyS0j5GybM2ixAD31664ZKTXMWIcganUBwE z2BerCAog+0IImu/XjZ1oF3UlQZe0qROmsg4084xL5qX/y4fcYNvn2rr8ww5FPKBFgc/ NIcOFnwg9sF21LofQqHHcTWnHLughkwYGDkwwxf1fcSzyO5s7mAouA0PpX24crtDeSmK pkKhiVk2aX71iAc5FqiiLDCH/6Nx7AKuraQvqzL2C3igxPrHJ0H+8lPYL2y4Xr+L11KO bm64A6ShUgqTqtnMeC55olX0QHBgSXYsPmjEUEApRRPJY260Q4OH4yKedCkQS90di9NP KWiw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@CAVIUMNETWORKS.onmicrosoft.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id m27si603046pgd.21.2017.06.04.05.05.12; Sun, 04 Jun 2017 05:05:12 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@CAVIUMNETWORKS.onmicrosoft.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751389AbdFDMEn (ORCPT + 25 others); Sun, 4 Jun 2017 08:04:43 -0400 Received: from mail-bl2nam02on0042.outbound.protection.outlook.com ([104.47.38.42]:37187 "EHLO NAM02-BL2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751444AbdFDMEU (ORCPT ); Sun, 4 Jun 2017 08:04:20 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=w6nJxZrZUp2CV7206otmTceECxrRgUD/8YmXL8DLFf8=; b=LBaIXPoLutKtd+7BV3xLKW+LIAGmusXOeUVGuAavH/Ypt9LIHUcgXJty0Bp6hDiu6KhWTSvj7wuecOLZ0ZHqGYtt7yhWhSfGfEbYrcKfWmsvEyczbC+EwWK4IXzFZr/EvX5YrDapBzkRokqwmjIOLTc1A5yBxLmEOrQEswUY6Vc= Authentication-Results: arm.com; dkim=none (message not signed) header.d=none; arm.com; dmarc=none action=none header.from=caviumnetworks.com; Received: from localhost (176.59.55.28) by BY1PR0701MB1272.namprd07.prod.outlook.com (10.160.108.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1143.10; Sun, 4 Jun 2017 12:03:57 +0000 From: Yury Norov To: Catalin Marinas , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, Arnd Bergmann Cc: Yury Norov , Andrew Pinski , Andrew Pinski , Adam Borowski , Chris Metcalf , Steve Ellcey , Maxim Kuvyrkov , Ramana Radhakrishnan , Florian Weimer , Bamvor Zhangjian , Andreas Schwab , Chris Metcalf , Heiko Carstens , schwidefsky@de.ibm.com, broonie@kernel.org, Joseph Myers , christoph.muellner@theobroma-systems.com, szabolcs.nagy@arm.com, klimov.linux@gmail.com, Nathan_Lynch@mentor.com, agraf@suse.de, Prasun.Kapoor@caviumnetworks.com, geert@linux-m68k.org, philipp.tomsich@theobroma-systems.com, manuel.montezelo@gmail.com, linyongting@huawei.com, davem@davemloft.net, zhouchengming1@huawei.com, Bamvor Jian Zhang Subject: [PATCH 19/20] arm64:ilp32: add vdso-ilp32 and use for signal return Date: Sun, 4 Jun 2017 15:00:08 +0300 Message-Id: <20170604120009.342-20-ynorov@caviumnetworks.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170604120009.342-1-ynorov@caviumnetworks.com> References: <20170604120009.342-1-ynorov@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [176.59.55.28] X-ClientProxiedBy: DB6PR02CA0003.eurprd02.prod.outlook.com (10.170.218.144) To BY1PR0701MB1272.namprd07.prod.outlook.com (10.160.108.18) X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BY1PR0701MB1272: X-MS-Office365-Filtering-Correlation-Id: ffaaf7e0-046c-4feb-ed15-08d4ab41c7cb X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131423075)(201703031133081); SRVR:BY1PR0701MB1272; X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1272; 3:PH1Cyh/i3cepCbq77kDpC0pu7yIYU5c0YSOq1WgFYLI2K3auMkvdk47MArSIC7PUrsLr2uU5etd7mD4agomYLuxhcDRWq+Iemn3cJy7B8Y3Nac55ArmpLWCwgNsdcYLfT1//jCshL6pvZakdwOGFi4VJ1+OBPi979l3TmIFKsqGF2NrWTEwTnQ99hyyxdSZntUc4bsjEYP6bo9VYrmEGfU+PdrNd4xGNV3pTObdV2r+BQkNHSrP1J8f+Zv3c9YsF3qZZTA6v4OyjH86eXTr5cQ5BNwYPK1+3o9LIZggatSqSMdFZSHlcamRu8xPjchkfU472bRuWqbq5dCjUCTnAyg==; 25:PxWTTxuBVt5GvJJdntK7ik+TxifBqEAwFEbiNYmKYm2smeObhU7TblrAMovhrcVsOwolH6SGMT6YCrLAnsAetkgxzXxW4aidepiOOL4LANK4VHw+o1IdBGDoBMhqJBkowh+63ujc/m1TvXbny8S8lokMK2boOFksd+BcT94EKTcQSQiNsEm37sbb5jSTJualRCXAC2fRNtfaQwMBmLjDOFx/XzxtGJA6act+LKVCWj+ly7gqN4qcbwqt9l7esOn2z2vRmii1cofwM7kNbxDcC1lw/g0bHstcUynybwnBt7Rb5jEJP/vViHpbPYdMgFWDtsTKmdR72/z/2aW0jIjEP24D8RKsX2jKowzTEYZbOpGhN9Q/G/gFfNEh9R9c2Y9TZLKc6TVRG9zVJO6rQjCTVXbHZaeNRpefwHzAUd7EOY+bqNdeXDqRYvf2FcautqmR8IbjLhTNsY3OwA7ruxcuBPQOF/4aIm/WIWQstEPUXmg= X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1272; 31:xNANGPE8KP/FuVsY2J5wLsccssXPuh1wgyBGuMn7KAj9e58J7+V1OBW1qH0HCvWYWQecwIhSKmZgg1uNkrnXO+j2ioN2VjUpPAcKTWbs2RQB7BfqBc46fG+FfvJcz4tuQgceONVjeN5W0ly95wMi7eE/ZfpMk5vacMlEXZEQDWSqJVvmxphQ5so7LteCZnyrtKPCwkujqfTgIaTqRfs6AeoH4+u6JMZNiAB9B/TXMJk=; 20:s7I8T5It8jg8oyxptpRSj8cH5J8Afocni6UKjvEAwGYkayvP/0PtVqc3z+NUyL/kwA2qltrCDUgEJbXyXnLLDF9ZlJEGj359eqoEhgGn6sdCZrcFMtT4+TGwxJE2Kh2Y+ME+lscwhuqiiQSt5SWLAZcTiKIFExTOZk2u6I5id5fyVx5qlvF3njdQ6wKq+9smlIZ0S3wRA7LEf9F9/zMpVKTGUTYObs9S0tGVTeMdNR+mGm53kuFgej/79IDDW1WdBipqP5JrvCgThboenk/2C8TWFCUP/7v0m4QPNeaqoHq0+Eo8d/vCD97yJw23s8LPKVpW5vrpVIB/DOzSdNm1HJ7aD27Z442XjzHypnot+r1kb3tYYa+kM+qVjRDjM1ubfHa/5TZH63TSrDFwzQ34qPOLD4gvl9+zBwBYHTc6AqzrHZOSc16fgr2iYhCYrkA4sbkpApnZFC9pckEwXuaetvSfI9ZFSrKMQO/6uRYzo0DKUuRVUEHm1UAg3zIdBVz97TmYut/XwE5hJpQcihYWusNJF9P7dJAKCC1CGBIWOjZRWMl/8O1auEkmWRjwcR4fd2EpPnYF4vbLz0WziTItNWj8M2WktmRGKdNlRlUdkl4= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(250305191791016)(180628864354917)(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)(3002001)(93006095)(6041248)(20161123562025)(20161123560025)(20161123564025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BY1PR0701MB1272; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BY1PR0701MB1272; X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1272; 4:b1Q18yMzKfu+lUy0OfFI3LAP3ljVXfgxblXFj8Zis5uhj/5V9SWka4hxhLTAE4HMZY+/8lZ5M4H5GL8J8A+pr2YE2SFjyK5XvaR5xQPlgJuARPH/XjqOsLskVAnM6r8Zo+3JXpPJOMOLRG1ZsCMVJnZ1dxQ2SwtlqPCcrciT393YLfFxHISZyDqW5Eb+Bq50IU9b7avcr2wEZWmRmlzsKV4b2+YMMIk/p30yV8M87iOL7APJmGD7tM5trdunEgd3lDxoeeb3az2tC0xpkttaHwjIkrHWZ5WpKGcRXDTTAKhwxZjsV6QNBb+DeYMv1xrX3B1kk+l5mRUOk01OpLsT/KrV1FRhloFm2Sp6BE11v3uW65L/7vtnp3QTr6jZLt1ZP7j1+lpHXp7GKw4im5WFpfAiNMiZLvawGmiqDEj0VqQ6nlykydJwhVF5lx/7c6GlQIWXRE580dmC7sE3StRiCSvW7q1GPZnks1cbfho2MDJFOOT41RiKVZI8Ww+YdQrhsJyJXTRR1Bh7SnoD73ApyuYrULbI0KVKHVTPmccDXfy59hhzTf19kawm2EJdJwL9PqpZcKm5RFN1YMIsAC8pulYHELD+IucIzI/o9jCfwX4JEQY5KPkpfoY+QAMUzNz/imktFIPMlYQr+rmtDXLMTSxxzfVtnRDpXg/NCoHiTTcDUGCOKpQUHDdb0dwX8WwO3d+GZsfMhZhWZkb4D1To4iBgB/XgfpvgJ+bkB13dYNBXX9Li0Jn5yUp4x1lKVm0EfxMD+hO7elKUE6i+ss6wFfpU+QfaCDdBvaR3teuypKlgFK3lvhaFGm5e/xUIvLONMqYoM++p4RsFyXCwakPeKvyBEed4lezWKGVYIz8bpAAyiDu6KT0i7HzJIbJhVGWToKDkJg+KidOrd/2m/VXgkKYRmvsFaLdUBLIi05SFVpRBX30b0gFId6x3DB6sE+dlwrgRgQ1HaZVyYE5TVuNUer3qe0uu2DH9SJKQon6C2Wi8TM9slXAlunDC0heoW4/jhT4ZEurfkUsorOiQx5UJDjfYJuIDgWqsTGIJ0mNczv0rgYEUKY59m9Ha5uI93OSUwkKwdMdRr2+Y2yr4fHmZazcMnk/KQToil7KX/sOYHmFHLJiUF0VAtH22K8VF3Y3E59pl0knRwgL8YKuoHtaFzhGZKq1tWy56Pd1CrGHCVpX9auM2iGxM8iOR8btZB1kmOlulMphrNknOO3yAlgJQ+g== X-Forefront-PRVS: 03283976A6 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(6069001)(39850400002)(39400400002)(39410400002)(6666003)(42882006)(6306002)(2950100002)(6496005)(47776003)(38730400002)(66066001)(36756003)(6486002)(54906002)(478600001)(48376002)(72206003)(2906002)(50466002)(81166006)(76506005)(3846002)(305945005)(53936002)(33646002)(6116002)(5660300001)(42186005)(50986999)(25786009)(50226002)(76176999)(1076002)(4326008)(189998001)(8676002)(7416002)(7406005)(5003940100001); DIR:OUT; SFP:1101; SCL:1; SRVR:BY1PR0701MB1272; H:localhost; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1272; 23:lWKFsfrXOn47e0H6IflQGi9tbLmisoO6RrmKkTGlZNFW0mrZqmhecZZJdTdqJuLkOVPNxZ8PFeZhuE1SehHApWMoUX78mvYL2yfbhYWo0lmAuWivCDdFb00FKb7it3Mwandiga3PjYgkadH1DS1jir73WmTjmmS7ub54ml1c6gLGVShvj0cRI6/dC6I14fAmHH8OW+YrBce89ibPI04GxeE+3XVjLLu97Pao63P0X9vUKhG0+m86brbRYSTLG3mspPG7R33UGji/dYdl8K6ZqKXuUTA1GL2xAYzFQ23vxlLWVqisiEsHJqLU0JtOa/9VgROmRDxLoQz22303in/9Trms0MyJbreTXdj6j55wso3Zyw6Fh5BEN6Oe6pLZOeUhped7LQfFTWAgAXkNxBRif3gEvRwj+kfnfeMHHTCqksLjV4RLrVmUdzUT83t8rI3GWkwTkr9femevY3JeXJGCU/ouOzebtYeDCEss1YVsJDHaVlzCp1IJMZy6aRWyILb71aNNwzLe8oE8mO+ZKOkh0ASaNPACCmeeS8LGi93v3NBnze2WRhTClQRKOtQLvUYeNz6YVJKwhm3a1HLEYiU1e8hzOHeMMHWNzYgfs0M6Q470uS6nuZRfEblBOLd0giqjdCDhxn+BA1K8wTtFqZfl9gEtR+9LVn7bvrc3Dl+qkIgPBu1kRRqTnRdHgsS3jMp6VSfHxjnXd2UW7CmC4qJ6V0ujInBOYc3YXgbWiUEOMmWAj+qHCWeMfBQVAvwdnGzj2dE8o5kxJUvT4eRsRwa5LjzHjGILjzSts7caIT9WsUn5Fr9jLw//lyLIksxr+PwLbLg7Tdg7yDWaX8h7gsDrEyMnqPKVzAS5K35zOXMjjWkCZZaWVi4eNd+sbJMg4O6/1+tFP6kchld6+krXRx3Gl6jotf9a+q4y1Ql0yroJf2Mz/Mj4j7q1MPKLN0yq3f27f7ExjJNRp2NOFEVERSrYZ8fv9z4rW5a5J88pD5Mfhj3F+iAs/NoCrweEap9V3hdEiQKy+YMaZCQK4u9+sd/9dTRgRJwsdWPx404IgR5VBm8= X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1272; 6:MgO0scHtWVCeaBzAad55J8arpKPhWMQzI+Bc9MAqafPcdEip2YsJIiqz14tax9eeJdZIN5pxSCPsu3T+8Qq5xfD7Wby0elaZP4JwcgOaSGi+LawIhnoEhbfNdEdfcC667Np9KMeQXdM05SXfRwhpgkJ6vIEaYh+BALrpqjSP4viu9eC0ly853PeXJO7Sl05Q8q/+O79EygOXAgetOAk23ZGpnRB3b86RkCmNXxTFAIgJeUpFv0MRSyyPAvoBdH9Dc/PvUL5dtcv4lrnyTgrZQa4auLJSXLBEfEwPk5etThdgDMEaY8SKEmrce7kf1lqQ6QNNOX+QbEbc0ZiMfihgNj9gauTVAQd1W1NiltiKQo2j1Wiej9+XkOvz/FWVV4yH4L1z7biYbBhaYOuA9QsmcZCFOorPICrpny82dyNZRIXxqw0IKOK+kGAkyuguEux9YAGMo/Wnpy5e9IZzkwI1yHU+qQPOAJPe+Wz3fZ+x7bFGjiEx0ZbiqaTCDkdilW/f+sHaqeHS34t8hCvxVgU+TA== X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1272; 5:UdYEp/dUq1xlJiS70O5H8quqQ6Cnyo75gvHBkSJOuorTLM3z5W5AaZ1dT2iUbd+bilRGRlRXxk5uV+k1FoVpAr/Xpv4ebnsfUBFcjrVNI4om86NtjmbJoqB6LxsK6SwEski7yKPokOVLZ92e2uIw5p2/FY1qQLDvQM27UNFon4LNR2oDq4GqU/AWY+mpsAvU3Ny2j5p89TAvlfOjqGUMMN8/rQbShzCMZkSrKdbXl/uXfz43cdRWtelr0elY2Llelqo2iU45o3Okvqa5epmHCIQ+zAeZTm733e000UFzb8t36TI2liGuQN+i0LCeMBjkF0PeZyy1uKhMpYwJaYRgFCMF5jyYlWWWZcQ8XcK3lQ5b3aS7Fs90PN2oiL6Oz1BtpUe8F8GTNHC1osE2y3PmfGHnwCanaUt+QTy7ZMtS+Y4OJiBXPZYO/J8TwREIODM/1dx/FDlh/kNQBydJD8ur2ZqO9WTFI7ZlM7Ftcf83rPFPqkultDunt+O0xU+G4f+L; 24:HEdFGmrQzXTpclRhJh92zWvXe5nSrnYLmqChUvbjTFJdKQWswTDWSaQXicdDRIiWCM816axlER/J66LJ2apaxObhjeV1TifgqHV+E8OC+94= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1272; 7:mO3DXBoar4FNaVAU2OG8J7L/UoR+b51nXlBIV2q+ZKwYQ3jDvYQuqVp1WhRUh0K+UPHV7w3/2/PBT2hHcIvqvNTc43LifwrJQVV89/h1JC46KTtDG4vQrgEcnWCWAJ1P6LQupaloZgNM6M3Sm2tVwbjkZHlam4mdJfFe94QYuutN3VL0ymd5CzoxHW9sL671QPjebmRwNAFqmLteYi8wiYE3gS8jSlxSGIyaKEWB0P7lxhKnmPhzlwO9Ii6n9/FS+swv6htxghjkrvJYoluiEsVoXCQ2r52I72H5crt+OI1C8ZN0eG31CD/KsS135qKdCmSkMGt6iBcKtsKsVhO/OA== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jun 2017 12:03:57.3555 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR0701MB1272 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Philipp Tomsich ILP32 VDSO exports following symbols: __kernel_rt_sigreturn; __kernel_gettimeofday; __kernel_clock_gettime; __kernel_clock_getres. What shared object to use, kernel selects depending on result of is_ilp32_compat_task() in arch/arm64/kernel/vdso.c, so it substitutes correct pages and spec. Adjusted to move the data page before code pages in sync with commit 601255ae3c98 ("arm64: vdso: move data page before code pages") Signed-off-by: Philipp Tomsich Signed-off-by: Christoph Muellner Signed-off-by: Yury Norov Signed-off-by: Bamvor Jian Zhang --- arch/arm64/Makefile | 3 + arch/arm64/include/asm/vdso.h | 6 ++ arch/arm64/kernel/Makefile | 1 + arch/arm64/kernel/asm-offsets.c | 7 ++ arch/arm64/kernel/signal.c | 2 + 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 | 65 +++++++++++++++--- arch/arm64/kernel/vdso/gettimeofday.S | 20 +++++- arch/arm64/kernel/vdso/vdso.S | 6 +- 12 files changed, 304 insertions(+), 16 deletions(-) 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 -- 2.11.0 diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile index 5ddfb3140f7a..ee9f47190d8f 100644 --- a/arch/arm64/Makefile +++ b/arch/arm64/Makefile @@ -152,6 +152,9 @@ archclean: prepare: vdso_prepare vdso_prepare: prepare0 $(Q)$(MAKE) $(build)=arch/arm64/kernel/vdso include/generated/vdso-offsets.h +ifeq ($(CONFIG_ARM64_ILP32), y) + $(Q)$(MAKE) $(build)=arch/arm64/kernel/vdso-ilp32 include/generated/vdso-ilp32-offsets.h +endif define archhelp echo '* Image.gz - Compressed kernel image (arch/$(ARCH)/boot/Image.gz)' diff --git a/arch/arm64/include/asm/vdso.h b/arch/arm64/include/asm/vdso.h index 839ce0031bd5..649a9a416500 100644 --- a/arch/arm64/include/asm/vdso.h +++ b/arch/arm64/include/asm/vdso.h @@ -29,6 +29,12 @@ #include +#ifdef CONFIG_ARM64_ILP32 +#include +#else +#define vdso_offset_sigtramp_ilp32 +#endif + #define VDSO_SYMBOL(base, name) \ ({ \ (void *)(vdso_offset_##name - VDSO_LBASE + (unsigned long)(base)); \ diff --git a/arch/arm64/kernel/Makefile b/arch/arm64/kernel/Makefile index f3bf1b74bb4a..0e628f67e249 100644 --- a/arch/arm64/kernel/Makefile +++ b/arch/arm64/kernel/Makefile @@ -58,6 +58,7 @@ arm64-reloc-test-y := reloc_test_core.o reloc_test_syms.o arm64-obj-$(CONFIG_CRASH_DUMP) += crash_dump.o obj-y += $(arm64-obj-y) vdso/ probes/ +obj-$(CONFIG_ARM64_ILP32) += vdso-ilp32/ obj-m += $(arm64-obj-m) head-y := head.o extra-y += $(head-y) vmlinux.lds diff --git a/arch/arm64/kernel/asm-offsets.c b/arch/arm64/kernel/asm-offsets.c index aec5b6cedc7c..c8a09718e998 100644 --- a/arch/arm64/kernel/asm-offsets.c +++ b/arch/arm64/kernel/asm-offsets.c @@ -121,6 +121,13 @@ int main(void) DEFINE(TSPEC_TV_SEC, offsetof(struct timespec, tv_sec)); DEFINE(TSPEC_TV_NSEC, offsetof(struct timespec, tv_nsec)); BLANK(); +#ifdef CONFIG_COMPAT + DEFINE(COMPAT_TVAL_TV_SEC, offsetof(struct compat_timeval, tv_sec)); + DEFINE(COMPAT_TVAL_TV_USEC, offsetof(struct compat_timeval, tv_usec)); + DEFINE(COMPAT_TSPEC_TV_SEC, offsetof(struct compat_timespec, tv_sec)); + DEFINE(COMPAT_TSPEC_TV_NSEC, offsetof(struct compat_timespec, tv_nsec)); + BLANK(); +#endif DEFINE(TZ_MINWEST, offsetof(struct timezone, tz_minuteswest)); DEFINE(TZ_DSTTIME, offsetof(struct timezone, tz_dsttime)); BLANK(); diff --git a/arch/arm64/kernel/signal.c b/arch/arm64/kernel/signal.c index b78f4c255636..a7f201dba9de 100644 --- a/arch/arm64/kernel/signal.c +++ b/arch/arm64/kernel/signal.c @@ -267,6 +267,8 @@ void setup_return(struct pt_regs *regs, struct k_sigaction *ka, if (ka->sa.sa_flags & SA_RESTORER) sigtramp = ka->sa.sa_restorer; + else if (is_ilp32_compat_task()) + sigtramp = VDSO_SYMBOL(current->mm->context.vdso, sigtramp_ilp32); else sigtramp = VDSO_SYMBOL(current->mm->context.vdso, sigtramp); diff --git a/arch/arm64/kernel/vdso-ilp32/.gitignore b/arch/arm64/kernel/vdso-ilp32/.gitignore new file mode 100644 index 000000000000..61806c3fd68b --- /dev/null +++ b/arch/arm64/kernel/vdso-ilp32/.gitignore @@ -0,0 +1,2 @@ +vdso-ilp32.lds +vdso-ilp32-offsets.h diff --git a/arch/arm64/kernel/vdso-ilp32/Makefile b/arch/arm64/kernel/vdso-ilp32/Makefile new file mode 100644 index 000000000000..8fac22a8b90e --- /dev/null +++ b/arch/arm64/kernel/vdso-ilp32/Makefile @@ -0,0 +1,80 @@ +# +# Building a vDSO image for AArch64. +# +# Author: Will Deacon +# Heavily based on the vDSO Makefiles for other archs. +# + +obj-ilp32-vdso := gettimeofday-ilp32.o note-ilp32.o sigreturn-ilp32.o + +# Build rules +targets := $(obj-ilp32-vdso) vdso-ilp32.so vdso-ilp32.so.dbg +obj-ilp32-vdso := $(addprefix $(obj)/, $(obj-ilp32-vdso)) + +ccflags-y := -shared -fno-common -fno-builtin +ccflags-y += -nostdlib -Wl,-soname=linux-ilp32-vdso.so.1 \ + $(call cc-ldoption, -Wl$(comma)--hash-style=sysv) + +# Disable gcov profiling for VDSO code +GCOV_PROFILE := n + +# Workaround for bare-metal (ELF) toolchains that neglect to pass -shared +# down to collect2, resulting in silent corruption of the vDSO image. +ccflags-y += -Wl,-shared + +obj-y += vdso-ilp32.o +extra-y += vdso-ilp32.lds +CPPFLAGS_vdso-ilp32.lds += -P -C -U$(ARCH) -mabi=ilp32 + +# Force dependency (incbin is bad) +$(obj)/vdso-ilp32.o : $(obj)/vdso-ilp32.so + +# Link rule for the .so file, .lds has to be first +$(obj)/vdso-ilp32.so.dbg: $(src)/vdso-ilp32.lds $(obj-ilp32-vdso) + $(call if_changed,vdso-ilp32ld) + +# Strip rule for the .so file +$(obj)/%.so: OBJCOPYFLAGS := -S +$(obj)/%.so: $(obj)/%.so.dbg FORCE + $(call if_changed,objcopy) + +# Generate VDSO offsets using helper script +gen-vdsosym := $(srctree)/$(src)/../vdso/gen_vdso_offsets.sh +quiet_cmd_vdsosym = VDSOSYM $@ +define cmd_vdsosym + $(NM) $< | $(gen-vdsosym) | LC_ALL=C sort > $@ +endef + +include/generated/vdso-ilp32-offsets.h: $(obj)/vdso-ilp32.so.dbg FORCE + $(call if_changed,vdsosym) + +# Assembly rules for the .S files +#$(obj-ilp32-vdso): %.o: $(src)/../vdso/$(subst -ilp32,,%.S) +# $(call if_changed_dep,vdso-ilp32as) + +$(obj)/gettimeofday-ilp32.o: $(src)/../vdso/gettimeofday.S + $(call if_changed_dep,vdso-ilp32as) + +$(obj)/note-ilp32.o: $(src)/../vdso/note.S + $(call if_changed_dep,vdso-ilp32as) + +# This one should be fine because ILP32 uses the same generic +# __NR_rt_sigreturn syscall number. +$(obj)/sigreturn-ilp32.o: $(src)/../vdso/sigreturn.S + $(call if_changed_dep,vdso-ilp32as) + +# Actual build commands +quiet_cmd_vdso-ilp32ld = VDSOILP32L $@ + cmd_vdso-ilp32ld = $(CC) $(c_flags) -mabi=ilp32 -Wl,-n -Wl,-T $^ -o $@ +quiet_cmd_vdso-ilp32as = VDSOILP32A $@ + cmd_vdso-ilp32as = $(CC) $(a_flags) -mabi=ilp32 -c -o $@ $< + +# Install commands for the unstripped file +quiet_cmd_vdso_install = INSTALL $@ + cmd_vdso_install = cp $(obj)/$@.dbg $(MODLIB)/vdso/$@ + +vdso-ilp32.so: $(obj)/vdso-ilp32.so.dbg + @mkdir -p $(MODLIB)/vdso + $(call cmd,vdso_install) + +vdso_install: vdso-ilp32.so diff --git a/arch/arm64/kernel/vdso-ilp32/vdso-ilp32.S b/arch/arm64/kernel/vdso-ilp32/vdso-ilp32.S new file mode 100644 index 000000000000..46ac0728443c --- /dev/null +++ b/arch/arm64/kernel/vdso-ilp32/vdso-ilp32.S @@ -0,0 +1,33 @@ +/* + * Copyright (C) 2012 ARM Limited + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * Author: Will Deacon + */ + +#include +#include +#include +#include + + __PAGE_ALIGNED_DATA + + .globl vdso_ilp32_start, vdso_ilp32_end + .balign PAGE_SIZE +vdso_ilp32_start: + .incbin "arch/arm64/kernel/vdso-ilp32/vdso-ilp32.so" + .balign PAGE_SIZE +vdso_ilp32_end: + + .previous diff --git a/arch/arm64/kernel/vdso-ilp32/vdso-ilp32.lds.S b/arch/arm64/kernel/vdso-ilp32/vdso-ilp32.lds.S new file mode 100644 index 000000000000..c82098f7037d --- /dev/null +++ b/arch/arm64/kernel/vdso-ilp32/vdso-ilp32.lds.S @@ -0,0 +1,95 @@ +/* + * GNU linker script for the VDSO library. + * + * Copyright (C) 2012 ARM Limited + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * Author: Will Deacon + * Heavily based on the vDSO linker scripts for other archs. + */ + +#include +#include +#include + +SECTIONS +{ + PROVIDE(_vdso_data = . - PAGE_SIZE); + . = VDSO_LBASE + SIZEOF_HEADERS; + + .hash : { *(.hash) } :text + .gnu.hash : { *(.gnu.hash) } + .dynsym : { *(.dynsym) } + .dynstr : { *(.dynstr) } + .gnu.version : { *(.gnu.version) } + .gnu.version_d : { *(.gnu.version_d) } + .gnu.version_r : { *(.gnu.version_r) } + + .note : { *(.note.*) } :text :note + + . = ALIGN(16); + + .text : { *(.text*) } :text =0xd503201f + PROVIDE (__etext = .); + PROVIDE (_etext = .); + PROVIDE (etext = .); + + .eh_frame_hdr : { *(.eh_frame_hdr) } :text :eh_frame_hdr + .eh_frame : { KEEP (*(.eh_frame)) } :text + + .dynamic : { *(.dynamic) } :text :dynamic + + .rodata : { *(.rodata*) } :text + + _end = .; + PROVIDE(end = .); + + /DISCARD/ : { + *(.note.GNU-stack) + *(.data .data.* .gnu.linkonce.d.* .sdata*) + *(.bss .sbss .dynbss .dynsbss) + } +} + +/* + * We must supply the ELF program headers explicitly to get just one + * PT_LOAD segment, and set the flags explicitly to make segments read-only. + */ +PHDRS +{ + text PT_LOAD FLAGS(5) FILEHDR PHDRS; /* PF_R|PF_X */ + dynamic PT_DYNAMIC FLAGS(4); /* PF_R */ + note PT_NOTE FLAGS(4); /* PF_R */ + eh_frame_hdr PT_GNU_EH_FRAME; +} + +/* + * This controls what symbols we export from the DSO. + */ +VERSION +{ + LINUX_4.12 { + global: + __kernel_rt_sigreturn; + __kernel_gettimeofday; + __kernel_clock_gettime; + __kernel_clock_getres; + local: *; + }; +} + +/* + * Make the sigreturn code visible to the kernel. + */ +VDSO_sigtramp_ilp32 = __kernel_rt_sigreturn; diff --git a/arch/arm64/kernel/vdso.c b/arch/arm64/kernel/vdso.c index 9d4490251793..71bee9243760 100644 --- a/arch/arm64/kernel/vdso.c +++ b/arch/arm64/kernel/vdso.c @@ -37,8 +37,13 @@ #include #include -extern char vdso_start, vdso_end; -static unsigned long vdso_pages __ro_after_init; +extern char vdso_lp64_start, vdso_lp64_end; +static unsigned long vdso_lp64_pages __ro_after_init; + +#ifdef CONFIG_ARM64_ILP32 +extern char vdso_ilp32_start, vdso_ilp32_end; +static unsigned long vdso_ilp32_pages __ro_after_init; +#endif /* * The vDSO data page. @@ -110,7 +115,17 @@ int aarch32_setup_vectors_page(struct linux_binprm *bprm, int uses_interp) } #endif /* CONFIG_AARCH32_EL0 */ -static struct vm_special_mapping vdso_spec[2] __ro_after_init = { +static struct vm_special_mapping vdso_lp64_spec[2] __ro_after_init = { + { + .name = "[vvar]", + }, + { + .name = "[vdso]", + }, +}; + +#ifdef CONFIG_ARM64_ILP32 +static struct vm_special_mapping vdso_ilp32_spec[2] __ro_after_init = { { .name = "[vvar]", }, @@ -118,21 +133,27 @@ static struct vm_special_mapping vdso_spec[2] __ro_after_init = { .name = "[vdso]", }, }; +#endif -static int __init vdso_init(void) +static int __init vdso_init(char *vdso_start, char *vdso_end, + unsigned long *vdso_pagesp, + struct vm_special_mapping *vdso_spec) { int i; + unsigned long vdso_pages; struct page **vdso_pagelist; unsigned long pfn; - if (memcmp(&vdso_start, "\177ELF", 4)) { + if (memcmp(vdso_start, "\177ELF", 4)) { pr_err("vDSO is not a valid ELF object!\n"); return -EINVAL; } - vdso_pages = (&vdso_end - &vdso_start) >> PAGE_SHIFT; + vdso_pages = (vdso_end - vdso_start) >> PAGE_SHIFT; + *vdso_pagesp = vdso_pages; pr_info("vdso: %ld pages (%ld code @ %p, %ld data @ %p)\n", - vdso_pages + 1, vdso_pages, &vdso_start, 1L, vdso_data); + vdso_pages + 1, vdso_pages, + vdso_start, 1L, vdso_data); /* Allocate the vDSO pagelist, plus a page for the data. */ vdso_pagelist = kcalloc(vdso_pages + 1, sizeof(struct page *), @@ -145,7 +166,7 @@ static int __init vdso_init(void) /* Grab the vDSO code pages. */ - pfn = sym_to_pfn(&vdso_start); + pfn = sym_to_pfn(vdso_start); for (i = 0; i < vdso_pages; i++) vdso_pagelist[i + 1] = pfn_to_page(pfn + i); @@ -155,7 +176,22 @@ static int __init vdso_init(void) return 0; } -arch_initcall(vdso_init); + +static int __init vdso_lp64_init(void) +{ + return vdso_init(&vdso_lp64_start, &vdso_lp64_end, + &vdso_lp64_pages, vdso_lp64_spec); +} +arch_initcall(vdso_lp64_init); + +#ifdef CONFIG_ARM64_ILP32 +static int __init vdso_ilp32_init(void) +{ + return vdso_init(&vdso_ilp32_start, &vdso_ilp32_end, + &vdso_ilp32_pages, vdso_ilp32_spec); +} +arch_initcall(vdso_ilp32_init); +#endif int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp) @@ -163,8 +199,17 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, struct mm_struct *mm = current->mm; unsigned long vdso_base, vdso_text_len, vdso_mapping_len; void *ret; + unsigned long pages = vdso_lp64_pages; + struct vm_special_mapping *vdso_spec = vdso_lp64_spec; + +#ifdef CONFIG_ARM64_ILP32 + if (is_ilp32_compat_task()) { + pages = vdso_ilp32_pages; + vdso_spec = vdso_ilp32_spec; + } +#endif - vdso_text_len = vdso_pages << PAGE_SHIFT; + vdso_text_len = pages << PAGE_SHIFT; /* Be sure to map the data page */ vdso_mapping_len = vdso_text_len + PAGE_SIZE; diff --git a/arch/arm64/kernel/vdso/gettimeofday.S b/arch/arm64/kernel/vdso/gettimeofday.S index e00b4671bd7c..062a33df4ba5 100644 --- a/arch/arm64/kernel/vdso/gettimeofday.S +++ b/arch/arm64/kernel/vdso/gettimeofday.S @@ -25,6 +25,16 @@ #define NSEC_PER_SEC_LO16 0xca00 #define NSEC_PER_SEC_HI16 0x3b9a +#ifdef __LP64__ +#define PTR_REG(n) x##n +#define OFFSET(n) n +#define DELOUSE(n) +#else +#define PTR_REG(n) w##n +#define OFFSET(n) COMPAT_##n +#define DELOUSE(n) mov w##n, w##n +#endif + vdso_data .req x6 seqcnt .req w7 w_tmp .req w8 @@ -119,7 +129,7 @@ x_tmp .req x8 .if \shift == 1 lsr x11, x11, x12 .endif - stp x10, x11, [x1, #TSPEC_TV_SEC] + stp PTR_REG(10), PTR_REG(11), [x1, #OFFSET(TSPEC_TV_SEC)] mov x0, xzr ret .endm @@ -136,6 +146,8 @@ x_tmp .req x8 /* int __kernel_gettimeofday(struct timeval *tv, struct timezone *tz); */ ENTRY(__kernel_gettimeofday) .cfi_startproc + DELOUSE(0) + DELOUSE(1) adr vdso_data, _vdso_data /* If tv is NULL, skip to the timezone code. */ cbz x0, 2f @@ -160,7 +172,7 @@ ENTRY(__kernel_gettimeofday) mov x13, #1000 lsl x13, x13, x12 udiv x11, x11, x13 - stp x10, x11, [x0, #TVAL_TV_SEC] + stp PTR_REG(10), PTR_REG(11), [x0, #OFFSET(TVAL_TV_SEC)] 2: /* If tz is NULL, return 0. */ cbz x1, 3f @@ -182,6 +194,7 @@ ENDPROC(__kernel_gettimeofday) /* int __kernel_clock_gettime(clockid_t clock_id, struct timespec *tp); */ ENTRY(__kernel_clock_gettime) .cfi_startproc + DELOUSE(1) cmp w0, #JUMPSLOT_MAX b.hi syscall adr vdso_data, _vdso_data @@ -297,6 +310,7 @@ ENDPROC(__kernel_clock_gettime) /* int __kernel_clock_getres(clockid_t clock_id, struct timespec *res); */ ENTRY(__kernel_clock_getres) .cfi_startproc + DELOUSE(1) cmp w0, #CLOCK_REALTIME ccmp w0, #CLOCK_MONOTONIC, #0x4, ne ccmp w0, #CLOCK_MONOTONIC_RAW, #0x4, ne @@ -311,7 +325,7 @@ ENTRY(__kernel_clock_getres) ldr x2, 6f 2: cbz w1, 3f - stp xzr, x2, [x1] + stp PTR_REG(zr), PTR_REG(2), [x1] 3: /* res == NULL. */ mov w0, wzr diff --git a/arch/arm64/kernel/vdso/vdso.S b/arch/arm64/kernel/vdso/vdso.S index 82379a70ef03..a40ae2485430 100644 --- a/arch/arm64/kernel/vdso/vdso.S +++ b/arch/arm64/kernel/vdso/vdso.S @@ -21,12 +21,12 @@ #include #include - .globl vdso_start, vdso_end + .globl vdso_lp64_start, vdso_lp64_end .section .rodata .balign PAGE_SIZE -vdso_start: +vdso_lp64_start: .incbin "arch/arm64/kernel/vdso/vdso.so" .balign PAGE_SIZE -vdso_end: +vdso_lp64_end: .previous From patchwork Sun Jun 4 12:00:09 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yury Norov X-Patchwork-Id: 101369 Delivered-To: patch@linaro.org Received: by 10.140.91.77 with SMTP id y71csp495675qgd; Sun, 4 Jun 2017 05:05:13 -0700 (PDT) X-Received: by 10.84.142.133 with SMTP id 5mr9420814plx.21.1496577913203; Sun, 04 Jun 2017 05:05:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1496577913; cv=none; d=google.com; s=arc-20160816; b=Mx5nsOatiWTnV/sudUl+IsekyVT7LZbjvxXy30kUW/IB0vzrM3QraVhqfp82wEWLRp RLkDbeRLMcFfVeV1Vtitm6d6M2scvywGMjjW6dD11zKWb5mXmF9v/8123nQnnr70E07e MLXT5v7+jBlXoWMP1raTr/NL8kDqi35v1UgAbxRlbiqTnRFM2JjGgxEwANcfZtbcmxFH 48vrpCtXZnStk5tDVCRh9/LSkIEoB+KgAOYKNztL7AqN0L3ZgmjBqYl3YpCdu6FllWUR uufoSC5EaFO4rK+o5jbz/qfoJpu3ewaQXTWY+bKYUumvBjQiOjNylHGyr25DTRQHSbHy 3FQQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:spamdiagnosticmetadata :spamdiagnosticoutput:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature:arc-authentication-results; bh=tzhSEmT4lqbLQKn4bL4xzpxkM8CnrzQJc07KvOjXapY=; b=NLi98h60GP2LPJRXdvMU75TFtzuXx/jj0n7cQsC3zoTeWjHi7Vw/YADOZYIDnRWQjl IKLB5yBgDIZemhuXAoIAM0ne+4cgYwJSL7Hk7kCwJfXQ6ss0cbWqoDj0Sw0UFj/qfZiA 7rcE4ypmTdFyn2A8f/KdFD7EXPSFZhDsvUCIoLXA2JGtixVoBZSL3iLGZPjLu1ZovM1V wmP2v8v4dKqDOLRT2Vf/w8slDSnWkE42DHoH9MaJR20H9HS6MomCEfIYLihh5CAB3Bus tl5lrmvKpfVynUthE7GbpYYQJ67lWTVYq16AIEtsmLJKeCXZG86IcN3C/wRRZAO/gKcD AVjA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@CAVIUMNETWORKS.onmicrosoft.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id m27si603046pgd.21.2017.06.04.05.05.12; Sun, 04 Jun 2017 05:05:13 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@CAVIUMNETWORKS.onmicrosoft.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751452AbdFDMEy (ORCPT + 25 others); Sun, 4 Jun 2017 08:04:54 -0400 Received: from mail-sn1nam02on0076.outbound.protection.outlook.com ([104.47.36.76]:28473 "EHLO NAM02-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751313AbdFDMEJ (ORCPT ); Sun, 4 Jun 2017 08:04:09 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=tzhSEmT4lqbLQKn4bL4xzpxkM8CnrzQJc07KvOjXapY=; b=jWED44JelBzCMbQ36uZqg3TWjYNgETxuzSJy8Nn3/6x8BmCRkwvoEpis+sUgXusCrN5Jd4lgQVRRgGWhGgZV+N63JCPc9PfNIbx2keVvondwH/KEYm483+50UHYLfa+Rp8JKryyRHUZJ5Y51h6cjTlsxMlF3jggfOKHzXVpfEjA= Authentication-Results: arm.com; dkim=none (message not signed) header.d=none; arm.com; dmarc=none action=none header.from=caviumnetworks.com; Received: from localhost (176.59.55.28) by BN3PR0701MB1267.namprd07.prod.outlook.com (10.160.118.141) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1143.10; Sun, 4 Jun 2017 12:04:07 +0000 From: Yury Norov To: Catalin Marinas , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, Arnd Bergmann Cc: Yury Norov , Andrew Pinski , Andrew Pinski , Adam Borowski , Chris Metcalf , Steve Ellcey , Maxim Kuvyrkov , Ramana Radhakrishnan , Florian Weimer , Bamvor Zhangjian , Andreas Schwab , Chris Metcalf , Heiko Carstens , schwidefsky@de.ibm.com, broonie@kernel.org, Joseph Myers , christoph.muellner@theobroma-systems.com, szabolcs.nagy@arm.com, klimov.linux@gmail.com, Nathan_Lynch@mentor.com, agraf@suse.de, Prasun.Kapoor@caviumnetworks.com, geert@linux-m68k.org, philipp.tomsich@theobroma-systems.com, manuel.montezelo@gmail.com, linyongting@huawei.com, davem@davemloft.net, zhouchengming1@huawei.com, Andrew Pinski Subject: [PATCH 20/20] arm64:ilp32: add ARM64_ILP32 to Kconfig Date: Sun, 4 Jun 2017 15:00:09 +0300 Message-Id: <20170604120009.342-21-ynorov@caviumnetworks.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170604120009.342-1-ynorov@caviumnetworks.com> References: <20170604120009.342-1-ynorov@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [176.59.55.28] X-ClientProxiedBy: DB6PR02CA0019.eurprd02.prod.outlook.com (10.170.218.160) To BN3PR0701MB1267.namprd07.prod.outlook.com (10.160.118.141) X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN3PR0701MB1267: X-MS-Office365-Filtering-Correlation-Id: c2af98f4-6d9d-4953-ae99-08d4ab41cda8 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131423075)(201703031133081); SRVR:BN3PR0701MB1267; X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1267; 3:jtXinoXBHs9i3Wch221aWcreMlUI5MxO8LgM6mRJV7PGC9/jGA6SiIeQs0QzQySr2j/4gGBiyqWr/JPxo9Epz23oVJNAx05bYUQI7+rzvb49IQPRrqMxrx4rAyL/3WfFiPfPJ+er0Ahs4a/pI5rMXIQ2QEHURsjWuRzUjwqcOtTOpHP+byJFP4pYvKHXJ/FiDxeKNaacfNj40NNZVjRO9YG1VM6uyhjrT3o/9I+IL+w9lkeH+RWYlEjuCTZGsx+JJJDhmtRcc0yvXU5FHiFHAHMwEi0qX9WRDKyUuTppj21Dxlz2qF6E0xQeTJ91j2eoeNcCNDBiLZg7G7MDfc5k6g==; 25:L5avsQc0XbkxQa7R0RNy6GwaxH9lf1smwRw2B6zQnXdGHRXG5smlRrW0PKBTKj2aajI0MybzxrWeTel+yUW0mYh5VtbUyhxpaJRmpSA47n1F7OFTVkP7Tr0WxPqFkAHnzxZ3rKTtxiT8ZLw0hLmAAvYn73SU4rY7inl663gP2YG5HXgyAoXNuHguIQnbZTr2yuK0JQSD4AbYcyJSgp0uJbqhrwGOW2f00HMD/R6tqK4DUEUdU7t1TT5u5P/pVngtxkxgZ8tplcj0mpCY60t3PrxfatpMN4n+LEy6eJ2a1i+D22ED0sJKYQgL/KLo4HZMVOm0/tklOD9hX9EPMluf9L+VynJFpx6vjLlYnGCoVX8vOyM8vMtCX3EXa2r3H66KOWnYYj3ewApBJW9ZPVgzkl88bZCuyDwHneoAL1qBV91ORK63coc8n9ItNXAEyzL4hDIXlW8yrXjZJnlqSlEz0PJSUf79y++fVxFGRe4JgFE= X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1267; 31:0evR3fIAS7c4SI3f5U6o3lefj4C8vKK04li5WW6R6IFkUwx8HX3rysTTVuJln0vfd2wTaabixk+UdJjccqyjYkRF72CxL9rhywglj7s29u1mtcJ25GSCeHVBWi/smkHkEASzAlltLfBk2/6WpBoM1XDRsdp+nqTOjrak5vT/yQUU059qodHF3k4WdmfK2g0B/uLur618LIPPVB9IDCb+rANMxlf7cQXWuawvS0g8v7Q=; 20:ItmOHu8ypdycad2ucj6EJdf97NNCTA2cJZ+gvprfvNSn52yPDu9EU73ekmJT2OWfzXzDrhtfMowcxKqTYOwIJFJr0MaMOB76BWcnvRKVZDQbtkhz5gXSUxCVvzJF+kwuJw1y/nrzULYt3JBUEhFI9W0nTySSojwqhVh5sUhcQsMQvS+CszquV5+cVkywHb7599T6r5f/lfSebGP2kYddN+zmt4wLckkZtTdfBBVMdIGq8ms1hy6wqUAw4IGgwjcrpzEn0XVhVkzs+7zF3uwqaNQ4GuTCPYiPuVS2ftAHG/4ANADvAanMFSIgL8z15p831BtZ823U9zklBc5Xji8iqeYm/gCXEvTWB4qtNKwYsAE7LmlLw+qla+e0VhlGsedypDwBTUAe4mE2JZUnnvimYHsMELcMDMJSxrKTkRZTWxK2v5DLCo8mZ/k+I5Ui8eD7qzT2DLYD8M0GpkY74WrOY1dHYkflkyGstf4WKbrqNM9WgYwYpdnev8VrSI00Q/yedSL9QWd4QoGul0dqlF79Q0NKF/ldveuDb7jOwrju6doNzUGj+6YGZa16Nc/g86XkYd8Fs9+XTcHw6FLIVdsXp8nO/jmAIvrNni1VbePzON4= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(278428928389397); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(100000703101)(100105400095)(93006095)(10201501046)(3002001)(6041248)(20161123558100)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(20161123562025)(20161123564025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BN3PR0701MB1267; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BN3PR0701MB1267; X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1267; 4:m1e8ZhHF/jn2+KEq33ddab9Rc2uZQc9JlPAfKO5t2eJPIwdZeD2kZNMiUvaET5kJhf+NuIhKqwHDnSUUdRZd+sooNplparT4Rx9w01ajL1VoGAMpkKZ7G2x9PH+0N8GeyKJIkCNmNgj26dgp3+PwmZW0OissT0AIf7t3S6vwFaLfMpizf7nwhrrOo9KV5JOs4vnZtV2HjCScaic0NOwIARup9vQbErW3Yj5Q+Uvxqq5ZcWNqkJgWmUCDF1mmo82XkdeJd5asYOXjy3URDU/xWmEBfGPAkeHzVJ6SebJVqn+cGNiCulPVLBhFd8evJjIP/n+ARVq5FZPE3s6/Fwvqa6GUXWzB58M/fpXqcAeYQPkCzidpKqlqey/aLeSmBJwIQtgbn/UiYTxRGkxv/F1bpuCCK3gEXbjHgxG0vwB0qQq0+figwwO+ursrWA2isZF3+gweOyUTW70e3nSOW8N3NoDFHD9kqUccDEYOmpqwCevfVzDmMjVEF+IkR3lyMsoFMdin5I95Gv94vJ4c/QZtfSyqsU+aa7AVIdop6g14csssCe79wYyRuVN7ARLHSGSDHw6eIMrw8OQeBm9noCkJCnUjytPbjeTOHvEAvmqRMhf9AoGsoDp50M/rnqkp1dZgbzCU8hkkq2XDYgKEvCsbs5jRx81N4CCmAh6TU/zLYg5yZStUEOAhgEJg51JZrIpTRE/mcyg64x8cGp1TIPcamcwC7EtljZfWWOymWezsdEnYEtaTEwdrddSRtBz13c8sMxkUFbYBRAUKbvKBB13ampSm4oCnUytWHElpfvrqf7jk+tTs4lruACdi/LYeY7a3/fFpJB8SNsH1IfMZrshD1Kh87h138tKUjDnWZaKkZvbiKEJg6zwL/1dFzMl+oNakYcVgEi0lvb0DDy7GD6WIjDFYYWO7JS21aXY4LOFpmy5TU/5T7QGDIn8FFgk4+Ji0Q1FYDSJAFzIPQbJKOxuqh77b3JUw9xKPYLtugO+gccU9G+skMqkew3OsM4Yuq/2nxE0rcr0U5u6swlcly5bicGupHK3PqygLo1eE8crl49S4ijgdRsKOLunyyX+vUmCu0bNto1AfSoMJz3xcTOqdQCreEKv+SwVKuZI+PvIrl3gX9778PeosWe5g7aEF25aP6qA3itNLPmCD/Z3pDXtFdg== X-Forefront-PRVS: 03283976A6 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6069001)(6009001)(39400400002)(39850400002)(39410400002)(2906002)(72206003)(189998001)(2950100002)(42882006)(5003940100001)(478600001)(66066001)(6486002)(53936002)(54906002)(50986999)(76176999)(47776003)(38730400002)(107886003)(6496005)(48376002)(50466002)(5660300001)(7416002)(76506005)(8676002)(81166006)(36756003)(305945005)(42186005)(33646002)(4326008)(50226002)(25786009)(1076002)(6116002)(3846002); DIR:OUT; SFP:1101; SCL:1; SRVR:BN3PR0701MB1267; H:localhost; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1267; 23:zWzjY7Q5sl9wetIHASCjmWVHCQ0kQX8WfhMngAAOvN5zLQzX9Ty4q9fYCNws7t30Sz73I2g2kst98pSG01Nr9pQbx0AaFnzzjxCfWze244ROU9gi1t3ahieDc7sywJsPlsvo1K2jdtYNvMKb2kZAKkt/eoLdUfRsnLZ6fD/t4Rc+GP0Pl+aVYom6FGQ+8c/WaZYeg9FEDzlQ9WIQNNMwjbTjfadFRwxgQ1jKALmc6TcTOulMj62V1sxpa3C+znmRbdGD4GWLJ4KrL+TBCm0yXSEDilFUq5NZOr0UG8Hx2fjrb4zDdUEVN3uQSRgY8+VZZPkhU4HK6KObEnj8VKGMpG+QIGz6X5aCKtWcfO4aGFscq9QCUbRSRzpP1QohLZ9tIXROo7L/WxmAxcqkl/NhRKUtSUrWgaf2664SgHW325MPfX8zn59fFsRwhGFCEZmImYBdSY9sXGo7oZ+oEPC6PiSt/TGj2jDMBCLH5ksovXZHa/zXfFTPfhEQk1ujszn3kWObwUNMZfHXnr5tqTP0mL0JT5eVFdJ6pdqMk1DlD6Ib/6pjhPyyo8mfs2JTKHmQaESOZoQ41hU04KqjbEre3vGnW5eajx2hdvarUOUo/02lgrqkIYO1t6t1aXqtL1m0CwDrtvmIG0TsaamCFsO6OOYKfyqPYvbSBlU8LxzqnZgPkfdw1evGscubw4q7ofNkOjYEwp9v4+nymV+iL5qGc4AIiGeUaOVXvK7h7cBPrOgaVGZ+m60v5XwfUftc3A5jkCuhcvZ/ckuSBriwmikv4UJPSkEbe9kk4qwXr4lRKkrbf7fbHLjKW/+XMfnmXRuYeXx73NJHYOZzQy5ly0RQhsQpDOxiyl0eTb55ljy3hr5JSqg0FIFEaPflXvxtspz0mu4oB3vx432qcBU3e1xjqSFo/ZF1CctV1X2yMaudlfx2H5kN9ujMavMtOzF9e7HJGX741XavU7qJQ4rM4qoAq8ZSqBGr7ymTv7xrpoDE1GCuDu+svKD688l0tVpTMWUP X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1267; 6:wqBjxHTAAlX/5bbUfM5Egvd0i43aSo3NyiZwAP89JqrOT7fXHnVtZF4ZYtCeX1RtMQk4kdMaAn9SV2FF8VvNaV7NLa8eCrriL+SvwiDGxe/NUFHGgUwUQF+pFnsL2UOSRBwPHM/rwDE51EO4JtOg1wltdpqxfEAy10D268H9TYuKimkQ3YyzgWuJKorkpkuTAyLDDtsZwmreu0Bwbn0BloGo1ChAW+QiLwe7PLxTIjDWUvvVjCSsNATt/3I/tafDoiKCuqBpliQRc14VbQHpBE/UUEVCkSm8CtIDb19OPuXdNh4oss/NJd8Z7oXe88bZf+GqdjS/DxZ5aZxWnBTGc6tcGE4TNxhucQZPDs+eFpNrl0ky8GSrW7zK5bDnXdjKKggWXf4ocmU5uwCl6PCmHc/41FLg1Cbrgs+VRiz+wleeLWjSe/H7aVEDQZ1bA34lWQFubsBmAE59Z4yvAbqvQHhxwTZJJrGmX/+WITA+/NKoRB2Vp1QXu7ybE90PXSvgMTtly7ORujz6gBYyIRHbpA== X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1267; 5:wT+vBIcWEe5CBSUKFSRWspPKbsMatWzTHVBXgenZXVS3tH2asDr4B1UXdMkw+tQ8pBYzW7xW6vcjtVrPj0A+iKbu/mZlNvXX72SGk7HeIEEfvs9d1oMixKNQ/+6WzJFfvY21O4JcBgf8hESoUdqt2TItob38PfuJcAZMQn5Na14XxztTBoxjKt8aaX1w5pDwB1revq15T9tdA2QB7Pq5WNVOg5Bkiyijtlkl5hJB/AdfT64/bVsCJAjMqJgs/CHWIS1vpX4NFGbQw4JSIqV5YVfAk0ZDZPpL0iRPVL0QNiMWYBTYoaiOSC4+BqReAo2C69ayrL/3QgkIuovVMLFisC4Lx0yP2hTOvSY2QfyW7S43ebv2UA84B9/bAmvV9Z9DHp3PxCLBq9ECrRNBzKGyTjRLkmwO++69VqPs4H4IHJ4OYc7Gd0Er3zTTZvmXxVrgPBysMq7wrbAVI9Cf7/EX6HjHGJuYGPWXF8BuEzeou7lBgCAZcqBdLc1rk/Q3utfE; 24:FGCsDR+F2Q+5Fo7dwl4iNJJvl9sReSsmm8o9fV8oBiF93d+FsWmJrnk0gXm0idmqAKAmscbXzVOpK0NAUemtmISc1P+CV/JQPJxKqVPQ4yE= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1267; 7:gxmBhwdLs/ZwSgDIPFEOybjNDEnXei3wKLezdLmTRMYCaAldSHxd11aPLDfiQqDcGIo5op7y44H9eDDa5rOa8YTgAb4FSGWjXBQJuzsrcD8umDduTDahU7Kl/amSDCm1fB3/NvrhrIdeHuB6PyMH1iUQhNQhJj2xM3zEA4t5pqo5MyTqvun3f7Yy1p7i14AC9VGnK7gaJIbWQVgWKe1S5vr2t6ma+cBInJ3Dw4wLxja1sxwNeFBbCdSmjfD++99qz0Y2tegVbHrbd6WIvhVRpvL4r7rX3vUmhJVXffuyTBBPSX7jM7qM55oflJyUskJ/yx40QLpaGO9EhFjEiIxKHg== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jun 2017 12:04:07.3497 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR0701MB1267 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Andrew Pinski This patch adds the config option for ILP32. Signed-off-by: Andrew Pinski Signed-off-by: Philipp Tomsich Signed-off-by: Christoph Muellner Signed-off-by: Yury Norov Reviewed-by: David Daney --- arch/arm64/Kconfig | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) -- 2.11.0 diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index 2275db8dc7c9..c155e195e939 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -1063,7 +1063,7 @@ source "fs/Kconfig.binfmt" config COMPAT bool - depends on AARCH32_EL0 + depends on AARCH32_EL0 || ARM64_ILP32 config AARCH32_EL0 bool "Kernel support for 32-bit EL0" @@ -1085,6 +1085,14 @@ config AARCH32_EL0 If you want to execute 32-bit userspace applications, say Y. +config ARM64_ILP32 + bool "Kernel support for ILP32" + select COMPAT + help + This option enables support for AArch64 ILP32 user space. ILP32 + is an ABI where long and pointers are 32bits but it uses the AARCH64 + instruction set. + config SYSVIPC_COMPAT def_bool y depends on COMPAT && SYSVIPC