diff options
author | Vitaliy Gusev <gusev.vitaliy@gmail.com> | 2023-05-09 08:27:29 +0000 |
---|---|---|
committer | Corvin Köhne <corvink@FreeBSD.org> | 2023-05-09 08:31:27 +0000 |
commit | c543e09f1f8ef98f201f7dd3f34ae023d61dfa83 (patch) | |
tree | c0d34c5fea8e57b154edfa33bd57cb7abc693df2 | |
parent | fefac543590db4e1461235b7c936f46026d0f318 (diff) | |
download | src-c543e09f1f8ef98f201f7dd3f34ae023d61dfa83.tar.gz src-c543e09f1f8ef98f201f7dd3f34ae023d61dfa83.zip |
bhyve: save/restore pir_desc
Failing to preserve pir_desc can result in pending interrupts being lost
on resume leading to a hung VM.
Reviewed by: corvink, jhb
MFC after: 1 week
Sponsored by: vStack
Differential Revision: https://reviews.freebsd.org/D35447
-rw-r--r-- | sys/amd64/vmm/intel/vmx.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/amd64/vmm/intel/vmx.c b/sys/amd64/vmm/intel/vmx.c index 69391f5b77de..ec54273caaaa 100644 --- a/sys/amd64/vmm/intel/vmx.c +++ b/sys/amd64/vmm/intel/vmx.c @@ -4179,6 +4179,9 @@ vmx_vcpu_snapshot(void *vcpui, struct vm_snapshot_meta *meta) SNAPSHOT_BUF_OR_LEAVE(vcpu->guest_msrs, sizeof(vcpu->guest_msrs), meta, err, done); + SNAPSHOT_BUF_OR_LEAVE(vcpu->pir_desc, + sizeof(*vcpu->pir_desc), meta, err, done); + vmxctx = &vcpu->ctx; SNAPSHOT_VAR_OR_LEAVE(vmxctx->guest_rdi, meta, err, done); SNAPSHOT_VAR_OR_LEAVE(vmxctx->guest_rsi, meta, err, done); |