mirror of
https://github.com/freebsd/freebsd-src
synced 2024-10-15 04:43:53 +00:00
vmm svm: Mark all VMCB state caches dirty on vCPU restore.
Mark Johnston noticed that this was missing VMCB_CACHE_LBR. Just set all the bits as is done in svm_run() rather than trying to clear individual bits. Reported by: markj Reviewed by: corvink, markj Differential Revision: https://reviews.freebsd.org/D37259
This commit is contained in:
parent
0f00260c67
commit
19b9dd2e08
|
@ -2478,17 +2478,8 @@ svm_snapshot(void *arg, struct vm_snapshot_meta *meta)
|
|||
SNAPSHOT_VAR_OR_LEAVE(vcpu->asid.num, meta, ret, done);
|
||||
|
||||
/* Set all caches dirty */
|
||||
if (meta->op == VM_SNAPSHOT_RESTORE) {
|
||||
svm_set_dirty(sc, i, VMCB_CACHE_ASID);
|
||||
svm_set_dirty(sc, i, VMCB_CACHE_IOPM);
|
||||
svm_set_dirty(sc, i, VMCB_CACHE_I);
|
||||
svm_set_dirty(sc, i, VMCB_CACHE_TPR);
|
||||
svm_set_dirty(sc, i, VMCB_CACHE_CR2);
|
||||
svm_set_dirty(sc, i, VMCB_CACHE_CR);
|
||||
svm_set_dirty(sc, i, VMCB_CACHE_DT);
|
||||
svm_set_dirty(sc, i, VMCB_CACHE_SEG);
|
||||
svm_set_dirty(sc, i, VMCB_CACHE_NP);
|
||||
}
|
||||
if (meta->op == VM_SNAPSHOT_RESTORE)
|
||||
svm_set_dirty(sc, i, 0xffffffff);
|
||||
}
|
||||
|
||||
if (meta->op == VM_SNAPSHOT_RESTORE)
|
||||
|
|
Loading…
Reference in a new issue