arm64/sme: Add ID_AA64SMFR0_EL1 to __read_sysreg_by_encoding()
authorMark Brown <broonie@kernel.org>
Wed, 27 Apr 2022 13:08:28 +0000 (14:08 +0100)
committerCatalin Marinas <catalin.marinas@arm.com>
Wed, 27 Apr 2022 15:41:53 +0000 (16:41 +0100)
We need to explicitly enumerate all the ID registers which we rely on
for CPU capabilities in __read_sysreg_by_encoding(), ID_AA64SMFR0_EL1 was
missed from this list so we trip a BUG() in paths which rely on that
function such as CPU hotplug. Add the register.

Reported-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
Link: https://lore.kernel.org/r/20220427130828.162615-1-broonie@kernel.org
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
arch/arm64/kernel/cpufeature.c

index 082b3f48cbfdc216b849c70392eec3b7baca20a1..619324b8bcef67eb0eda4e9e4b0c682f06801e2a 100644 (file)
@@ -1336,6 +1336,7 @@ u64 __read_sysreg_by_encoding(u32 sys_id)
        read_sysreg_case(SYS_ID_AA64PFR0_EL1);
        read_sysreg_case(SYS_ID_AA64PFR1_EL1);
        read_sysreg_case(SYS_ID_AA64ZFR0_EL1);
+       read_sysreg_case(SYS_ID_AA64SMFR0_EL1);
        read_sysreg_case(SYS_ID_AA64DFR0_EL1);
        read_sysreg_case(SYS_ID_AA64DFR1_EL1);
        read_sysreg_case(SYS_ID_AA64MMFR0_EL1);