git: 4d447b30f7be - main - vmm: do not leak halted_cpus bit after suspension
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 01 Nov 2022 21:00:52 UTC
The branch main has been updated by kib:
URL: https://cgit.FreeBSD.org/src/commit/?id=4d447b30f7be761b0c2877513e79f484511a00a5
commit 4d447b30f7be761b0c2877513e79f484511a00a5
Author: Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2022-10-31 23:30:55 +0000
Commit: Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2022-11-01 18:44:42 +0000
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
---
sys/amd64/vmm/vmm.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/sys/amd64/vmm/vmm.c b/sys/amd64/vmm/vmm.c
index 8daf2ae29737..dc6e03303b44 100644
--- a/sys/amd64/vmm/vmm.c
+++ b/sys/amd64/vmm/vmm.c
@@ -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);
}
}