mirror of
https://github.com/torvalds/linux.git
synced 2026-05-27 00:22:00 +02:00
KVM: PPC: Book3S HV P9: Move xive vcpu context management into kvmhv_p9_guest_entry
Move the xive management up so the low level register switching can be pushed further down in a later patch. XIVE MMIO CI operations can run in higher level code with machine checks, tracing, etc., available. Signed-off-by: Nicholas Piggin <npiggin@gmail.com> Reviewed-by: Alexey Kardashevskiy <aik@ozlabs.ru> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/20210528090752.3542186-12-npiggin@gmail.com
This commit is contained in:
parent
6ffe2c6e6d
commit
09512c2916
|
|
@ -3558,15 +3558,11 @@ static int kvmhv_load_hv_regs_and_go(struct kvm_vcpu *vcpu, u64 time_limit,
|
|||
*/
|
||||
mtspr(SPRN_HDEC, hdec);
|
||||
|
||||
kvmppc_xive_push_vcpu(vcpu);
|
||||
|
||||
mtspr(SPRN_SRR0, vcpu->arch.shregs.srr0);
|
||||
mtspr(SPRN_SRR1, vcpu->arch.shregs.srr1);
|
||||
|
||||
trap = __kvmhv_vcpu_entry_p9(vcpu);
|
||||
|
||||
kvmppc_xive_pull_vcpu(vcpu);
|
||||
|
||||
/* Advance host PURR/SPURR by the amount used by guest */
|
||||
purr = mfspr(SPRN_PURR);
|
||||
spurr = mfspr(SPRN_SPURR);
|
||||
|
|
@ -3764,7 +3760,10 @@ static int kvmhv_p9_guest_entry(struct kvm_vcpu *vcpu, u64 time_limit,
|
|||
trap = 0;
|
||||
}
|
||||
} else {
|
||||
kvmppc_xive_push_vcpu(vcpu);
|
||||
trap = kvmhv_load_hv_regs_and_go(vcpu, time_limit, lpcr);
|
||||
kvmppc_xive_pull_vcpu(vcpu);
|
||||
|
||||
}
|
||||
|
||||
vcpu->arch.slb_max = 0;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user