Page MenuHomeFreeBSD

D37643.diff
No OneTemporary

D37643.diff

diff --git a/usr.sbin/bhyve/bhyverun.c b/usr.sbin/bhyve/bhyverun.c
--- a/usr.sbin/bhyve/bhyverun.c
+++ b/usr.sbin/bhyve/bhyverun.c
@@ -194,7 +194,7 @@
static cpuset_t cpumask;
-static void vm_loop(struct vmctx *ctx, int vcpu, uint64_t rip);
+static void vm_loop(struct vmctx *ctx, int vcpu);
static struct vm_exit *vmexit;
@@ -540,7 +540,7 @@
#endif
gdb_cpu_add(vcpu);
- vm_loop(mtp->mt_ctx, vcpu, vmexit[vcpu].rip);
+ vm_loop(mtp->mt_ctx, vcpu);
/* not reached */
exit(1);
@@ -548,7 +548,7 @@
}
static void
-fbsdrun_addcpu(struct vmctx *ctx, int newcpu, uint64_t rip, bool suspend)
+fbsdrun_addcpu(struct vmctx *ctx, int newcpu, bool suspend)
{
int error;
@@ -561,13 +561,6 @@
if (suspend)
vm_suspend_cpu(ctx, newcpu);
- /*
- * Set up the vmexit struct to allow execution to start
- * at the given RIP
- */
- vmexit[newcpu].rip = rip;
- vmexit[newcpu].inst_length = 0;
-
mt_vmm_info[newcpu].mt_ctx = ctx;
mt_vmm_info[newcpu].mt_vcpu = newcpu;
@@ -973,7 +966,7 @@
};
static void
-vm_loop(struct vmctx *ctx, int vcpu, uint64_t startrip)
+vm_loop(struct vmctx *ctx, int vcpu)
{
int error, rc;
enum vm_exitcode exitcode;
@@ -988,9 +981,6 @@
error = vm_active_cpus(ctx, &active_cpus);
assert(CPU_ISSET(vcpu, &active_cpus));
- error = vm_set_register(ctx, vcpu, VM_REG_GUEST_RIP, startrip);
- assert(error == 0);
-
while (1) {
error = vm_run(ctx, vcpu, &vmexit[vcpu]);
if (error != 0)
@@ -1152,7 +1142,6 @@
spinup_vcpu(struct vmctx *ctx, int vcpu, bool suspend)
{
int error;
- uint64_t rip;
if (vcpu != BSP) {
fbsdrun_set_capabilities(ctx, vcpu);
@@ -1166,10 +1155,7 @@
assert(error == 0);
}
- error = vm_get_register(ctx, vcpu, VM_REG_GUEST_RIP, &rip);
- assert(error == 0);
-
- fbsdrun_addcpu(ctx, vcpu, rip, suspend);
+ fbsdrun_addcpu(ctx, vcpu, suspend);
}
static bool

File Metadata

Mime Type
text/plain
Expires
Sat, Jan 25, 6:34 AM (20 h, 36 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
16128691
Default Alt Text
D37643.diff (1 KB)

Event Timeline