From: Peter Dinda Date: Wed, 7 Apr 2010 21:48:41 +0000 (-0500) Subject: Added time check for SVM X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=commitdiff_plain;h=655b4ebc21a3dc379539dc603d5524e31ab7b031;p=palacios.git Added time check for SVM --- diff --git a/palacios/include/palacios/vmm.h b/palacios/include/palacios/vmm.h index 1ef6cb1..b10795c 100644 --- a/palacios/include/palacios/vmm.h +++ b/palacios/include/palacios/vmm.h @@ -141,7 +141,7 @@ struct guest_info; #define V3_CREATE_THREAD(fn, arg, name) \ do { \ - extern struct v3_os_hooks * os_hooks; \ + extern struct v3_os_hooks * os_hooks; \ if ((os_hooks) && (os_hooks)->start_kernel_thread) { \ (os_hooks)->start_kernel_thread(fn, arg, name); \ } \ diff --git a/palacios/src/palacios/svm.c b/palacios/src/palacios/svm.c index 6de0781..c11b484 100644 --- a/palacios/src/palacios/svm.c +++ b/palacios/src/palacios/svm.c @@ -468,6 +468,10 @@ int v3_svm_enter(struct guest_info * info) { rdtscll(tmp_tsc); + if (tmp_tsc < info->time_state.cached_host_tsc) { + PrintError("Time has gone backwards, panicing!\n"); + return -1; + } v3_update_time(info, tmp_tsc - info->time_state.cached_host_tsc); rdtscll(info->time_state.cached_host_tsc); // guest_ctrl->TSC_OFFSET = info->time_state.guest_tsc - info->time_state.cached_host_tsc;