ref: f97beab07ee8afc2631f0e903a3b57f60ed3a820
parent: ecb0b9d900df599f829905eb071f5c606d803b58
author: aiju <devnull@localhost>
date: Sat Sep 2 06:43:37 EDT 2017
devvmx: call vmxshutdown from reboot() function manually
--- a/sys/src/9/pc/devvmx.c
+++ b/sys/src/9/pc/devvmx.c
@@ -1844,7 +1844,7 @@
return vmx;
}
-static void
+void
vmxshutdown(void)
{int i;
@@ -2203,7 +2203,7 @@
vmxreset,
devinit,
- vmxshutdown,
+ devshutdown,
vmxattach,
vmxwalk,
vmxstat,
--- a/sys/src/9/pc/fns.h
+++ b/sys/src/9/pc/fns.h
@@ -198,6 +198,7 @@
void* vmap(ulong, int);
int vmapsync(ulong);
void vmxprocrestore(Proc *);
+void vmxshutdown(void);
void vunmap(void*, int);
void wbinvd(void);
void writeconf(void);
--- a/sys/src/9/pc/main.c
+++ b/sys/src/9/pc/main.c
@@ -735,6 +735,7 @@
ulong *pdb;
writeconf();
+ vmxshutdown();
/*
* the boot processor is cpu0. execute this function on it
--- a/sys/src/9/pc64/fns.h
+++ b/sys/src/9/pc64/fns.h
@@ -190,6 +190,7 @@
void upareserve(uintptr, int);
void vectortable(void);
void vmxprocrestore(Proc *);
+void vmxshutdown(void);
void* vmap(uintptr, int);
void vunmap(void*, int);
void wbinvd(void);
--- a/sys/src/9/pc64/main.c
+++ b/sys/src/9/pc64/main.c
@@ -350,6 +350,7 @@
void (*f)(uintptr, uintptr, ulong);
writeconf();
+ vmxshutdown();
/*
* the boot processor is cpu0. execute this function on it
--
⑨