mirror of
https://github.com/torvalds/linux.git
synced 2026-06-04 04:23:35 +02:00
KVM: arm64: Return early from kvm_finalize_sys_regs() if guest has run
If the guest has already run, we have no business finalizing the system register state - it is too late. Therefore, check early and bail if the VM has already run. This change also stops kvm_init_nv_sysregs() from being called once the RM has run once. Although this looks like a behavioural change, the function returns early once it has been called the first time. Signed-off-by: Sascha Bischoff <sascha.bischoff@arm.com> Link: https://patch.msgid.link/20260319154937.3619520-4-sascha.bischoff@arm.com Signed-off-by: Marc Zyngier <maz@kernel.org>
This commit is contained in:
parent
3a2857da94
commit
cbd8c958be
|
|
@ -5659,11 +5659,14 @@ int kvm_finalize_sys_regs(struct kvm_vcpu *vcpu)
|
||||||
|
|
||||||
guard(mutex)(&kvm->arch.config_lock);
|
guard(mutex)(&kvm->arch.config_lock);
|
||||||
|
|
||||||
|
if (kvm_vm_has_ran_once(kvm))
|
||||||
|
return 0;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This hacks into the ID registers, so only perform it when the
|
* This hacks into the ID registers, so only perform it when the
|
||||||
* first vcpu runs, or the kvm_set_vm_id_reg() helper will scream.
|
* first vcpu runs, or the kvm_set_vm_id_reg() helper will scream.
|
||||||
*/
|
*/
|
||||||
if (!irqchip_in_kernel(kvm) && !kvm_vm_has_ran_once(kvm)) {
|
if (!irqchip_in_kernel(kvm)) {
|
||||||
u64 val;
|
u64 val;
|
||||||
|
|
||||||
val = kvm_read_vm_id_reg(kvm, SYS_ID_AA64PFR0_EL1) & ~ID_AA64PFR0_EL1_GIC;
|
val = kvm_read_vm_id_reg(kvm, SYS_ID_AA64PFR0_EL1) & ~ID_AA64PFR0_EL1_GIC;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user