summaryrefslogtreecommitdiff
path: root/usr.sbin/bhyveload
diff options
context:
space:
mode:
authorNeel Natu <neel@FreeBSD.org>2014-06-07 21:36:52 +0000
committerNeel Natu <neel@FreeBSD.org>2014-06-07 21:36:52 +0000
commit5fcf252f410e7784626d6d5d0e75042be23d4f24 (patch)
tree87873f56f85dfd15e0b36f4a2e884ae8dbcb74b3 /usr.sbin/bhyveload
parentdd05fa1945f915a29b23ff9f0450b00df0e89e68 (diff)
downloadsrc-test2-5fcf252f410e7784626d6d5d0e75042be23d4f24.tar.gz
src-test2-5fcf252f410e7784626d6d5d0e75042be23d4f24.zip
Notes
Diffstat (limited to 'usr.sbin/bhyveload')
-rw-r--r--usr.sbin/bhyveload/bhyveload.c21
1 files changed, 16 insertions, 5 deletions
diff --git a/usr.sbin/bhyveload/bhyveload.c b/usr.sbin/bhyveload/bhyveload.c
index c1a54326360b..44424963fed0 100644
--- a/usr.sbin/bhyveload/bhyveload.c
+++ b/usr.sbin/bhyveload/bhyveload.c
@@ -642,7 +642,7 @@ main(int argc, char** argv)
void *h;
void (*func)(struct loader_callbacks *, void *, int, int);
uint64_t mem_size;
- int opt, error;
+ int opt, error, need_reinit;
progname = basename(argv[0]);
@@ -691,11 +691,14 @@ main(int argc, char** argv)
vmname = argv[0];
+ need_reinit = 0;
error = vm_create(vmname);
- if (error != 0 && errno != EEXIST) {
- perror("vm_create");
- exit(1);
-
+ if (error) {
+ if (errno != EEXIST) {
+ perror("vm_create");
+ exit(1);
+ }
+ need_reinit = 1;
}
ctx = vm_open(vmname);
@@ -704,6 +707,14 @@ main(int argc, char** argv)
exit(1);
}
+ if (need_reinit) {
+ error = vm_reinit(ctx);
+ if (error) {
+ perror("vm_reinit");
+ exit(1);
+ }
+ }
+
error = vm_setup_memory(ctx, mem_size, VM_MMAP_ALL);
if (error) {
perror("vm_setup_memory");