Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

arm64: Hook up cmdline parameter to allow mismatched 32-bit EL0

Allow systems with mismatched 32-bit support at EL0 to run 32-bit
applications based on a new kernel parameter.

Signed-off-by: Will Deacon <will@kernel.org>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Link: https://lore.kernel.org/r/20210730112443.23245-15-will@kernel.org

authored by

Will Deacon and committed by
Peter Zijlstra
ead7de46 7af33504

+15
+8
Documentation/admin-guide/kernel-parameters.txt
··· 287 287 do not want to use tracing_snapshot_alloc() as it needs 288 288 to be done where GFP_KERNEL allocations are allowed. 289 289 290 + allow_mismatched_32bit_el0 [ARM64] 291 + Allow execve() of 32-bit applications and setting of the 292 + PER_LINUX32 personality on systems where only a strict 293 + subset of the CPUs support 32-bit EL0. When this 294 + parameter is present, the set of CPUs supporting 32-bit 295 + EL0 is indicated by /sys/devices/system/cpu/aarch32_el0 296 + and hot-unplug operations may be restricted. 297 + 290 298 amd_iommu= [HW,X86-64] 291 299 Pass parameters to the AMD IOMMU driver in the system. 292 300 Possible values are:
+7
arch/arm64/kernel/cpufeature.c
··· 1322 1322 return cpu_possible_mask; 1323 1323 } 1324 1324 1325 + static int __init parse_32bit_el0_param(char *str) 1326 + { 1327 + allow_mismatched_32bit_el0 = true; 1328 + return 0; 1329 + } 1330 + early_param("allow_mismatched_32bit_el0", parse_32bit_el0_param); 1331 + 1325 1332 static ssize_t aarch32_el0_show(struct device *dev, 1326 1333 struct device_attribute *attr, char *buf) 1327 1334 {