-
/*
* This file is part of the Palacios Virtual Machine Monitor developed
* by the V3VEE Project with funding from the United States National
#include <palacios/svm_msr.h>
#include <palacios/vmm_rbtree.h>
+#include <palacios/vmm_barrier.h>
+
#include <palacios/vmm_direct_paging.h>
int status;
// Call arch-independent handler
- if ((status = v3_handle_efer_write(core, msr, src, priv_data)) != 0)
+ if ((status = v3_handle_efer_write(core, msr, src, priv_data)) != 0) {
return status;
+ }
// SVM-specific code
- if (core->shdw_pg_mode == NESTED_PAGING) {
+ {
// Ensure that hardware visible EFER.SVME bit is set (SVM Enable)
struct efer_64 * hw_efer = (struct efer_64 *)&(core->ctrl_regs.efer);
hw_efer->svme = 1;
break;
}
+ v3_wait_at_barrier(info);
+
if (info->vm_info->run_state == VM_STOPPED) {
info->core_run_state = CORE_STOPPED;