vmm: do not leak halted_cpus bit after suspension

Reported by:	bz
PR:	267468
Reviewed by:	markj
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D37227
This commit is contained in:
Konstantin Belousov 2022-11-01 01:30:55 +02:00
parent 085a42d0cf
commit 4d447b30f7

View File

@ -1424,8 +1424,13 @@ vm_handle_hlt(struct vm *vm, int vcpuid, bool intr_disabled, bool *retu)
if (td_ast_pending(td, TDA_SUSPEND)) {
vcpu_unlock(vcpu);
error = thread_check_susp(td, false);
if (error != 0)
if (error != 0) {
if (vcpu_halted) {
CPU_CLR_ATOMIC(vcpuid,
&vm->halted_cpus);
}
return (error);
}
vcpu_lock(vcpu);
}
}