From: Bibo Mao <maobibo@xxxxxxxxxxx> commit 78d7bc5a02e1468df53896df354fa80727f35b7d upstream. On host, the HW guest CSR registers are lost after suspend and resume operation. Since last_vcpu of boot CPU still records latest vCPU pointer so that the guest CSR register skips to reload when boot CPU resumes and vCPU is scheduled. Here last_vcpu is cleared so that guest CSR registers will reload from scheduled vCPU context after suspend and resume. Cc: stable@xxxxxxxxxxxxxxx Signed-off-by: Bibo Mao <maobibo@xxxxxxxxxxx> Signed-off-by: Huacai Chen <chenhuacai@xxxxxxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- arch/loongarch/kvm/main.c | 7 +++++++ 1 file changed, 7 insertions(+) --- a/arch/loongarch/kvm/main.c +++ b/arch/loongarch/kvm/main.c @@ -297,6 +297,13 @@ int kvm_arch_enable_virtualization_cpu(v kvm_debug("GCFG:%lx GSTAT:%lx GINTC:%lx GTLBC:%lx", read_csr_gcfg(), read_csr_gstat(), read_csr_gintc(), read_csr_gtlbc()); + /* + * HW Guest CSR registers are lost after CPU suspend and resume. + * Clear last_vcpu so that Guest CSR registers forced to reload + * from vCPU SW state. + */ + this_cpu_ptr(vmcs)->last_vcpu = NULL; + return 0; } Patches currently in stable-queue which might be from maobibo@xxxxxxxxxxx are queue-6.12/loongarch-kvm-fix-gpa-size-issue-about-vm.patch queue-6.12/loongarch-set-max_pfn-with-the-pfn-of-the-last-page.patch queue-6.12/loongarch-kvm-add-interrupt-checking-for-avec.patch queue-6.12/loongarch-kvm-reload-guest-csr-registers-after-sleep.patch