Re: [PATCH v4 6/8] KVM: PPC: Ultravisor: Restrict LDBAR access
From: Michael Ellerman <mpe@ellerman.id.au>
Date: 2019-07-11 13:11:06
Claudio Carvalho [off-list ref] writes:
When the ultravisor firmware is available, it takes control over the LDBAR register. In this case, thread-imc updates and save/restore operations on the LDBAR register are handled by ultravisor.
Please roll up the replies to Alexey's question about LDBAR into the change log.
quoted hunk ↗ jump to hunk
diff --git a/arch/powerpc/kvm/book3s_hv_rmhandlers.S b/arch/powerpc/kvm/book3s_hv_rmhandlers.S index f9b2620fbecd..cffb365d9d02 100644 --- a/arch/powerpc/kvm/book3s_hv_rmhandlers.S +++ b/arch/powerpc/kvm/book3s_hv_rmhandlers.S@@ -375,8 +375,10 @@ BEGIN_FTR_SECTION mtspr SPRN_RPR, r0 ld r0, KVM_SPLIT_PMMAR(r6) mtspr SPRN_PMMAR, r0 +BEGIN_FW_FTR_SECTION_NESTED(70) ld r0, KVM_SPLIT_LDBAR(r6) mtspr SPRN_LDBAR, r0 +END_FW_FTR_SECTION_NESTED(FW_FEATURE_ULTRAVISOR, 0, 70)
That's in Power8 code isn't it? Which will never have an ultravisor.
quoted hunk ↗ jump to hunk
diff --git a/arch/powerpc/platforms/powernv/opal-imc.c b/arch/powerpc/platforms/powernv/opal-imc.c index 1b6932890a73..5fe2d4526cbc 100644 --- a/arch/powerpc/platforms/powernv/opal-imc.c +++ b/arch/powerpc/platforms/powernv/opal-imc.c@@ -254,6 +254,10 @@ static int opal_imc_counters_probe(struct platform_device *pdev) bool core_imc_reg = false, thread_imc_reg = false; u32 type; + /* Disable IMC devices, when Ultravisor is enabled. */ + if (firmware_has_feature(FW_FEATURE_ULTRAVISOR)) + return -EACCES;
I don't mind taking this change. But at the same time should the IMC stuff just be omitted from the device tree when we're in ultravisor mode? cheers