From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753160AbbIBOA4 (ORCPT ); Wed, 2 Sep 2015 10:00:56 -0400 Received: from mail-by2on0083.outbound.protection.outlook.com ([207.46.100.83]:52048 "EHLO na01-by2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750743AbbIBOAz (ORCPT ); Wed, 2 Sep 2015 10:00:55 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Yuri.Norov@caviumnetworks.com; From: Yury Norov To: , , CC: , , , , , , , Yury Norov Subject: [PATCH v2 0/2] arm64: introduce run-time detection of aarch32 support Date: Wed, 2 Sep 2015 17:00:36 +0300 Message-ID: <1441202438-27005-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: HE1PR02CA0044.eurprd02.prod.outlook.com (25.163.170.12) To BLUPR07MB611.namprd07.prod.outlook.com (10.141.207.16) X-Microsoft-Exchange-Diagnostics: 1;BLUPR07MB611;2:4Zs5nlGxkbuwBOFowE7iYysu4j9UYiKVjyjCtWNCZnJh3ek7tqthDolM3DSdd2Gw4aEoZBAYk2AAZERt7+1pPGVDQ0Nu4WsevqHeDMPUC9F7/B3ScqoZaiK9MgwXaV66OFg7jfecsEIF4L5yxbuftWiJ6/d/XFGeeZVA3Nl+uOE=;3:tMABhuikNeyp/r6i9ihX0xReUiU5rKpKPtkJbzK8kY39lumG2f/W0nvVtKXlubY5osJ03EkSyzN0KOiqwc2cBu4oHjz2/NTffCzlv89iUTy90TwoENhd/3tGmWL+PUNGMGauAPDjCDGwkStoqXqwFA==;25:FM0sV0nCnIxnpL2BdgmRYQJJTenzuiO7UT0FVyajfFCpZ2NoUaF9MtkrrdH9hKfQk0TJnrPvm3cDoTgDxUu6MYmkc0lVEYz67RXkweW3FxguYKaoLmpmy5EwiSqV9tMB1rm+WHZgi6mP1pIirKmor/HaGkUzAerYYqDeYl/S0V4JV970IasF35PIVWjfnm6BZFY3NKcFD+iZiuvjvOOOnDMhm9RKLNNHCrjAcm13UktKokfWUoifeZen+x2KV9N356KaLU4vrBEBR6lucIh85g== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BLUPR07MB611; X-Microsoft-Exchange-Diagnostics: 1;BLUPR07MB611;20:jYKDvMi1fNigN2yGzojF8sEmPMLd5WqxyCqRPECBTKZMm0W040xDChvJ9n5yEmQWVgHMrohHe+7rbG1F+l/Iu+4g8C/LQL+N9g8deIudChV3OSnqilQyhkCz+SRCj6JRalNDdOS8M+MhqDr11kHYHkE5qocgcwpPwscgvqmY62BFcAVk9jRtl/R1Iw9iMaYUfZ6PYtMEwq3GVcm0uOIzDzq6Imp+yT6nxJlgmakufSkRhdW1R+Pv6LcDcDqGgOEoL8u46oGtzvWU/jVSLnmVByezCTHA3+ZSYeAGJ/yLKh7oAawgd93ukQ51AnMSYYCw+VmM0vB2X2sj8hUtGs5qlgpkLp/02fy34V/rnm8+ygb/MIEmHJO6kRSIIMyKj5LTMR6DGRawFBxBOl7rPDDsMLts9+4sjiS9lVe+4stpwue89MQkiKDFci+B1JD54IhHBbbDvKbSh+WmcBbwO3BFQsRAjWmHpLzXEnPTZgwONxcjb68H9xHBUSK4FzSXvv2I6wzGaZHl2iJYpnKeKG+LpHZlb9SA/Pw/UnLY/rlxskItBDA09s9EluHIdhwOCdp1pD82fZ9X0gEyKkAPx5yemMCxNZ9FWYFY4TGBHQeJ6Jc=;4:Z/+da0qPgTWkjHOSN0ivfSyq5k5E7FhZxXb3JB3XJDd/KvJe0W1TUaWxtiv37E4AI/gvqnN2V5tNGQOqKSFNwRpRiBj5LGwKd8CiZBUF8fz16dNjdfuJw2Va7bkcZurlArSVNGRwPFi+kPvTXJ0zx3kvdzmtEB3TdfA7Ud943w3TT28cNwBLhGd1VS7/uesOvxmGuZ3FacLkV+EGIlc8ohvyuCjgJK90+3vWGpJb/N4eO9I6V/MHP4g1CqoWqWuhDU8Z7ZwbJ+eGc/MympMZJ09TxYHWgddARTq3pIBBspj+hX8N7Wb+UeKRnt+Yly7w 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:BLUPR07MB611;BCL:0;PCL:0;RULEID:;SRVR:BLUPR07MB611; X-Forefront-PRVS: 0687389FB0 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6009001)(6069001)(199003)(189002)(5001860100001)(107886002)(5001960100002)(106356001)(42186005)(189998001)(229853001)(5001830100001)(76506005)(68736005)(62966003)(105586002)(77096005)(4001540100001)(50986999)(81156007)(97736004)(36756003)(101416001)(48376002)(50466002)(77156002)(87976001)(47776003)(66066001)(64706001)(19580405001)(19580395003)(40100003)(50226001)(5003940100001)(5007970100001)(5004730100002)(46102003)(92566002)(5001770100001)(33646002)(122386002)(2201001)(4001430100001);DIR:OUT;SFP:1101;SCL:1;SRVR:BLUPR07MB611;H:localhost;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BLUPR07MB611;23:LZ60B8XwJ9l4vQewgXfMDKLivjUvDadGGZqtPEzFKY?= =?us-ascii?Q?SI5TlcjpfZIZRb8ytrLfoiKjf8SNXB2f6HkyBWB8grjlz/Oy1RFWqhIAjlPT?= =?us-ascii?Q?oT3+FGHPMXrPPaLM942nzmHNlqNj4Neg1pBT6xUEPwD9OE/si88HTLxhkBtU?= =?us-ascii?Q?JzLz+Y4QZXCgFiQaG5uWV5cTGwEkQnIIbr/AJbpI0JKt1jy9BHpVFMAKl4X9?= =?us-ascii?Q?dcZJ1PwQE6JD4oygtk2Mvs5zoyXrzu6haMCMhkySksWc/BsLLuKxKtWHtWPW?= =?us-ascii?Q?qGs+kP3Zl90X6glc/8Cgk3UrHY6K88CdP0e0p/4WvurhkWf1YfOEi9u7JQTj?= =?us-ascii?Q?sgxiEAZ97Mob0hFk6sjyDbTNbc077OKIY4/JkzE/el3kQAyewp4CeNUvCiIy?= =?us-ascii?Q?8nvmEK/KWkc2HXLtFO/CT8y/Qs3YJcm1Im90Aoyom3QsW76sVXyZqcrjwBOs?= =?us-ascii?Q?bzyx7xDFFuni/X8Py/u4jmwOat6nfwl6wOcoRqZEh5ZKry/gzkQJRt1Fig3D?= =?us-ascii?Q?C/0m8kNfbULeZrkPDcMMXEV03tYbk16JgyXsupD3QtkMuaAAJ6uHZ8XUhstu?= =?us-ascii?Q?RFfQYDFcVjLfUrY1PPo/J8igrcWloEqGF3QW41IjOh/Ocg0YxXqqzk4gNlMM?= =?us-ascii?Q?kV0LOFPVvHUH+y/nJ5lIxm72mNl+kChAJ3esSUu66gAhqgxYLC6wYYor9TTs?= =?us-ascii?Q?m5Tp5kbyh56X8tFqKHwhKuvTbVofSih7+URmjLtvl0RJkH1Kmb4dV5c1ssMN?= =?us-ascii?Q?sLtyGmvwcto5CVJFh1GGyWP6+IvGnuNrobB8rZazt56jz0XXuTJnh5B79w0K?= =?us-ascii?Q?0WTKqAHA6jSbKGzQiUdCKRnmJ6uanaTkXP8a650s2/I+7BeYZbgd7miciHi/?= =?us-ascii?Q?05MJLs9NV7bg+WCo/vrGuiYscpDQIMMOALB4i8u4PpAgsP3vS74oBnB/ERN8?= =?us-ascii?Q?dhuenRMQI09IXWhl44cEeWs3M6nhBDGt5bT8bQiLxj201/Z4So3wwOFqMW1q?= =?us-ascii?Q?ETwd7f1UnYn0q+6zInMqXqJxMovoaa6RRzYgU+GfTeJw3BH2yjOH8wb9kD/8?= =?us-ascii?Q?AsZTfqCAXF2zhz/tGnsn40I2kztYTthpa90B7XT+jf91eEgo5G/4OYUxV9qu?= =?us-ascii?Q?Eh1/NEYMHhs4KmajdGePdnyJlwnnfIDyDtq+LjPuc7QpoVAhud0kDSO3v1GY?= =?us-ascii?Q?TJDS0MMvRBe03wHE8Ez9oryNwdtkb0UzE+?= X-Microsoft-Exchange-Diagnostics: 1;BLUPR07MB611;5:sW4zW2WuRnMNLq+g+dvWO6K8mXE1Jm3gPpgEQ48+Vxc9jY2W20Ztqr5vN/IB8zpVsDRHcYuEUJwWvrXF33JIqBdafCIo2dUh9tGclkNePjlQesEnsN9vV5678lclEhmoraPxtrUD8P2zTsP62tAwHg==;24:fYFHr/7p1hQELOsIP4pXqVANDqd/OFZMWOENFiT+oSrsyFMGYhey8r7peY8DtBJwCgd/9+gGMiJYF0HXnZPr4akIpmoz3vv/OVfoBQg5m+I=;20:L1fRNiXM3e2GubJLG7Y6UAS5JHfBeJgvX76c5Un17vbxiRAg0YG4qzQrDmw1DR8JNJAmHvUJHyTZx17wqQMWIg== SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Sep 2015 14:00:51.9639 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR07MB611 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. 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