From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932066AbbIBPu2 (ORCPT ); Wed, 2 Sep 2015 11:50:28 -0400 Received: from mail-bn1bon0089.outbound.protection.outlook.com ([157.56.111.89]:13872 "EHLO na01-bn1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754560AbbIBPu0 (ORCPT ); Wed, 2 Sep 2015 11:50:26 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Yuri.Norov@caviumnetworks.com; arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=caviumnetworks.com; From: Yury Norov To: , , CC: , , , , , , , Yury Norov Subject: [PATCH v3 0/2] arm64: introduce run-time detection of aarch32 support Date: Wed, 2 Sep 2015 18:49:58 +0300 Message-ID: <1441209000-26746-1-git-send-email-ynorov@caviumnetworks.com> X-Mailer: git-send-email 2.1.4 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [91.77.150.194] X-ClientProxiedBy: HE1PR03CA0003.eurprd03.prod.outlook.com (25.163.170.141) To BY2PR07MB616.namprd07.prod.outlook.com (10.141.222.156) X-Microsoft-Exchange-Diagnostics: 1;BY2PR07MB616;2:ETD0z/rAKwGvnh4mwDn8IiG7PHavEPl6AuDos5leCy3L0TVWKvdNSj2KxapVF+vFVmPlWMa37r+sGVvJIsVHKGhKabYfrsd5oSNK9hyesFhk+BtWZxMVZfHP/EFviiLK2+bK5FAyyVoBfx3wVWABl3fVAieyMFRDl8g7Ew/s55s=;3:Px8LNKqcW88ItMoSBJzQg3RxjfLeUdK58kDkMcL0G3SIiXyVUwIQWslxhWUU9yfNNFT5d/RUCeK8weoJuAijTCPW+rd1AxqEO7VA7C1CZq8ohhSFlTdBm4aTjZ91i/jJei+FjszUQ6TClKdzLKWhzA==;25:fSU3eZWbBw36xKFFykOV5LKfjBasRqzwFk4xGTGzK6VKAyCXdH0sPwmpldlzYfxRiEDYGMBXhP2urLJV92FOX+G+jj8Ck5glXdPxdvxPMCm4NYu652+TtY4tVzSpXUh+pK7Kf80Q08tOdRFnamHTf3Hh+N1rObDGTEysfvCohqt022ob/W785i38PGkSXykWFUY6Al5rJcX6EY9diSg1UrIZZ2uLFVyrsj1n1TczgfcRK/zvJUepU6b24ylMo0yJi9zAt//XC7u/9KuPQcTm3g== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY2PR07MB616;UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY2PR07MB1556; X-Microsoft-Exchange-Diagnostics: 1;BY2PR07MB616;20:Ev6vU16T4LZRuNZ1yjFXgdAgJZw3dmftCTyIRqIbWFMaVLDFWTPiZDeFDFE8bHntRZXUKlRDqWX2Qi4Z0O2YVZqvnTU5B9oZJQWg7gv8ENzJboc2PfQDzQhXm/S9pbWLPO/P5XO5bqS9Qi0KysLp83VkSbb8Vk1NfyIMErsaaIzaXhvTGJd0+lSfHc9z8eEHfFteJUZGDfqTCr4GQMtQGVBAGBqCxWzLaps2MWwKAydedLhRM5GbYwCw0QLcgYjGDy9pt0KYgDcjWUjRyYCHeiXaHzTxslgACfmSW805Gg8mMgiazpQM8Ywr60rrfnaMvRSiEJVekDJ0YnBbeZAZeoO3q8ZVW6CRp3gnXLewd39OKj3/fIy/IQMNQgQhtaf5wU350wTzN5i3qVjwnWSdOYyTHGKbLTbyfoa6MACQyJVbXH6R1n17yHvtZsYPO3cwBh8ES6M/blqGlViyuiqs1Lp0mVkKvpcGezdk/jhPMpilShrCp97tpFOIZSfNZHn6UUqZgUUai+xQ8dQh2OL48M15qIbUuvcjaXwfrNBFcdJhtFRwXoX7kh+6sdENfVgggrgsy+g0xWdy4bDeamW0NC9pXrh/UY0wmR8f/sFXPNg=;4:L2zpwAcx5YMDuuIndpl+g1KNYUAEoHCuC9qt9Yk0V7j363qff2QwpINA3x8iADL50MYpIugJ6x7FBiUAY/uxAiqLmFEPHQWL9s05B70bDAOLEJk8c4fxJLnJwKQXS3qwtJ1NjgfeW+dImpjkK9x1TpbpSIDErzk+fSE4ZAfvfKJvWciJygHQQqCZkTLaQwq6EW6njdG4dK9IgdfAO4l1LDOn6ERlCP3DOlBveEa81WAZ5Q7h2r8PcD5D9fahW/faQw/LSmFgrJaFwD7PKlYlxRd0/2W52W9WuQmiE2azxiarJh6h6XdC5mW5Nm3+frfi X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(5005006)(8121501046)(3002001);SRVR:BY2PR07MB616;BCL:0;PCL:0;RULEID:;SRVR:BY2PR07MB616; X-Forefront-PRVS: 0687389FB0 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6069001)(6009001)(199003)(189002)(64706001)(46102003)(106356001)(40100003)(81156007)(92566002)(5001770100001)(87976001)(66066001)(19580395003)(5001830100001)(19580405001)(50226001)(5003940100001)(50466002)(48376002)(2201001)(189998001)(77156002)(77096005)(107886002)(62966003)(68736005)(97736004)(36756003)(5001960100002)(76506005)(5007970100001)(47776003)(5001860100001)(101416001)(5004730100002)(229853001)(33646002)(42186005)(4001540100001)(105586002)(122386002)(50986999)(4001430100001);DIR:OUT;SFP:1101;SCL:1;SRVR:BY2PR07MB616;H:localhost;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BY2PR07MB616;23:+ttnuPqrVVAgl7a+2So3rAkTdaMWkmPAHUIWaI58MG?= =?us-ascii?Q?g78irVyj8QzvyCTeA2ynkdjyZESEy4WoDr8OTNAMvG+bu4QXnlk/muCMgl7x?= =?us-ascii?Q?M/COPaXhrpDaXv1INsclqtFOcVKcWpH74VB/XdWHhxIE0eK9zObcBHFUsEp8?= =?us-ascii?Q?kaCBdsDi43kdnG+7Mp/rINERzlhW8SRRPJ7A6M+tJ3F6xD9NO2nv+T1u7MmW?= =?us-ascii?Q?NSIJ0DqdXHUvWJ7fJfmEnYV1T+m/p4pT96ujXaCpKV1/x+N6N5yuZsaI6AGL?= =?us-ascii?Q?jDdeUXw53cmL38HT/z5KUefJu6CXzkcQAGs7HXnz8C031sj4Tb0C+IvLGWg6?= =?us-ascii?Q?sGh7DhCAe+iJKL48s8ZRKdcWO0aXwdcICB8/5R52khk6U/EwXn3gy2yqC5M0?= =?us-ascii?Q?nyWhKMlaZyRcmnAFVizTMa6w7mgqLEYeStvXQ/8c9EI2LbtAPEkctztgMSB0?= =?us-ascii?Q?JxBoWqZ2slvI9aq2Wr1Wnr9nnLF/JJUGAu1ZzHwLPafPxFImnpWxpsfJz6Oe?= =?us-ascii?Q?51UR/UzEKK9YisZd3EmyhvjmFxiPDGG8BXxCfogGPXWnhHEQPK1m3aNEXLP5?= =?us-ascii?Q?fES8x3Ic+1m11fhjYUW8ihRTPHU9/6qgWLVltm2dW8C9HpP2FyRFbsfDu4qz?= =?us-ascii?Q?f4c+rhaF52Xi2G/PIIOFwew/83XBqyZMhHbDYn57LmvuNztomWF3UuBemO4S?= =?us-ascii?Q?7gORwzQRmA4VDWNpA1GbtS9RldLSlHRpud7zlKFhF1QSO2elSpOAcBoxOUbe?= =?us-ascii?Q?UeDxgpun5lM/Bv2evTUhc2F7oqBPU1u3lFqRlVwDU4kZCQ0iAPvE6Vw4KKnB?= =?us-ascii?Q?mDR7HylWQ2Pb25nBkxJ0Vw025LjGDTDcl9ew6iwv/wK0+pDaCefDIJW8dWh8?= =?us-ascii?Q?VtWJzCfHpPsok3Ay8267QGd19o+i2K1fAHR3ljzCbUDNWijvb2DFajb8C3H8?= =?us-ascii?Q?UZzZjDO2zPeKXYqwazyJIbsPkqO3ng+Tigx6e0V5gj0TG1dCFnpPc0gPmfc3?= =?us-ascii?Q?MYiANG3o+HjSXlrZFsKYYMJlplkmjARHu2LKEggdWOjraveK/xAZNelx2zmR?= =?us-ascii?Q?nF5naHYKvcFeQn3klPqNCntp3bIHqKdGmwe+7ZH8zsicNsHKsPRenSPTY2jD?= =?us-ascii?Q?yzVbmbaXb1F0qcJMe8Eu6l+OgVM2anMpVeyGvfzPyJvzHyiHalSY2yIIouj2?= =?us-ascii?Q?mFx5HVWJdC9KyW1WAg4v4skqUhTbrc+bys?= X-Microsoft-Exchange-Diagnostics: 1;BY2PR07MB616;5:rtDZtQsfsP3oowJTowCqH9eqFpez7keJOnckxMlfhv48ngTIgnik+Gom0kpRBtErmqQuiU6B4oaAoSan5gsi5D67lyotwLjKnxokPQX+bArR2vj4bCpFbshXZI5pUPqqc+K5s73nGKjTPJRlJD4+Jg==;24:WWXfs7Nnep+QI5ucpGuilfthfSXGWnK8VHYlPMUFNZ2KZfTyO2L1po3ZYhisXYihdfyQoldsTXRDA+Lqo+V/a59+yq7b1z4dS0+IitnIJ1I=;20:olpFFvqqubkP44NvtyGa4mZ5bkmYFKt7i4HLJXeQdspiyLKdXHAXbhyVjd189SA89+ptvrV2f4jkZ0A8CnKAoA== SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Sep 2015 15:50:14.4650 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR07MB616 X-Microsoft-Exchange-Diagnostics: 1;BY2PR07MB1556;2:LEQscg7nwLDRYMyV4wAh/Nji9fU3ljfoUhT6uMpWG97Ep45u3rkX9WYLf5WZxKalSvaAXHJcmJBJy0YSapWsazPuhzfacLj4+nGQYp7vDEyB5btx8FSD8mad0nbk0ammfyCgEFEBnVQE8jLMtxdr3sMgMCxXwpsthYcUwUq1EO0=;3:VUaTBVxOxeCF7cmwryiA4c3AAc/4+bjv0LhoWT4fl1HDrV1Qf/5FZ27dQ+blPjk2Iz9IfW8ldCcmxKyTng0uEwUjxmPUuBLJztJ24jQsMSzty5n2nz+GK8R1TFgFiK6uO0RShsL97tTUUN9DC/n08Q==;25:R8bLCQZVMXCVb9iYL/laAQosnhE7r8DAdREPcNKWZMvbGfUtJFK3kGjUM1KFYvCOApZ4Y8HSILWrxlE4z8vNMV6elY6Dx9wkTZ0qAxxIkjSU2bcmFhX71HhoZ+uO8yaVdvwJq21yz3rTCiE36jn0TRHq9Pv10JsBEnjHqvGSu2N9CFSTYyV7e7BkzrXWG0TfxbLNgCeJS8Xsu7EKY9h5yDHfB4m6iM6O6srQb8Fs3i0LuYBzKRuE6y9q4KK1AfakC218LpHgdUga7Rc3Y+Jdrg==;23:DpLo/3qwFF//teXosIiPzVtA3PJV32lTbd2Cb4/VCV1BXIxSA/VUvvDTBcNlt7SL5kjfzDmbPPxRWClT1agdp7DWyHW7WwRD1gSRznn9B7xOwoiD+sdsViIlUuc0qbDISk5fDmsmWLZim/Pl7fYFKgKNlZ+odgDHnPhNTEeS7T4gQbACd2vbE0b7rrX0I2IN X-OriginatorOrg: caviumnetworks.com Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This is needed to avoid loading aarch32 binaries if COMPAT is enabled, but aarch32 is not supported by specific platform. First patch fixes hidden header dependencies in arch/arm64/include/asm/cpufeature.h. It's not related to the issue, but helps to avoid build failure that happens if one applies second patch only. Second patch adds run-time detection of aarch32 support, and rejects kernel to load such binaries, if not supported. Tested on ThunderX. V3: - first patch message extended with explanation for cpu_feature macro move; - in second patch, restored pfr0 masking in id_aa64pfr0_aarch32_el0(). V2: - add missing for the __attribute_const__ on cpuid_feature_extract_field; - move cpu_feature macro under the __ASSEMBLY__ guard. - check that all CPUs support AArch32, not the current only, the same way as for endianness support. Signed-off-by: Yury Norov Yury Norov (2): arm64: cpufeature.h: resolve hidden header dependencies arm64: don't load 32-bit binaries if platform has no aarch32_el0 arch/arm64/include/asm/cpufeature.h | 10 +++++++++- arch/arm64/include/asm/cputype.h | 8 ++++++++ arch/arm64/include/asm/elf.h | 6 ++++-- arch/arm64/kernel/cpuinfo.c | 12 ++++++++++++ 4 files changed, 33 insertions(+), 3 deletions(-) -- 2.1.4