arm64: Make use of ARCH_WORKAROUND_1 even when KVM is not enabled
authorMarc Zyngier <maz@kernel.org>
Thu, 16 Jul 2020 16:11:08 +0000 (17:11 +0100)
committerWill Deacon <will@kernel.org>
Mon, 21 Sep 2020 17:31:09 +0000 (18:31 +0100)
We seem to be pretending that we don't have any firmware mitigation
when KVM is not compiled in, which is not quite expected.

Bring back the mitigation in this case.

Fixes: 4db61fef16a1 ("arm64: kvm: Modernize __smccc_workaround_1_smc_start annotations")
Cc: <stable@vger.kernel.org>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Will Deacon <will@kernel.org>
arch/arm64/kernel/cpu_errata.c

index c332d49780dc96c6afe8cbe7b88f7cbef3d727b9..88966496806ae3fb6179859ab61123f7df9e61e1 100644 (file)
@@ -234,14 +234,17 @@ static int detect_harden_bp_fw(void)
                smccc_end = NULL;
                break;
 
-#if IS_ENABLED(CONFIG_KVM)
        case SMCCC_CONDUIT_SMC:
                cb = call_smc_arch_workaround_1;
+#if IS_ENABLED(CONFIG_KVM)
                smccc_start = __smccc_workaround_1_smc;
                smccc_end = __smccc_workaround_1_smc +
                        __SMCCC_WORKAROUND_1_SMC_SZ;
-               break;
+#else
+               smccc_start = NULL;
+               smccc_end = NULL;
 #endif
+               break;
 
        default:
                return -1;