diff options
author | neel <neel@FreeBSD.org> | 2012-11-28 13:34:44 +0000 |
---|---|---|
committer | neel <neel@FreeBSD.org> | 2012-11-28 13:34:44 +0000 |
commit | da4e87dfd614fffb88e5a93c988e1caec9c9efe7 (patch) | |
tree | 8478d32c190158cb294c8e9b16471656d6b287f6 | |
parent | 308122a0f1279a0305554f864d6b01f9c132511a (diff) | |
download | FreeBSD-src-da4e87dfd614fffb88e5a93c988e1caec9c9efe7.zip FreeBSD-src-da4e87dfd614fffb88e5a93c988e1caec9c9efe7.tar.gz |
Cleanup the user-space paging exit handler now that the unified instruction
emulation is in place.
Obtained from: NetApp
-rw-r--r-- | sys/amd64/include/vmm.h | 2 | ||||
-rw-r--r-- | sys/amd64/vmm/intel/vmx.c | 2 | ||||
-rw-r--r-- | usr.sbin/bhyve/fbsdrun.c | 3 | ||||
-rw-r--r-- | usr.sbin/bhyve/mem.c | 3 | ||||
-rw-r--r-- | usr.sbin/bhyve/mem.h | 3 |
5 files changed, 3 insertions, 10 deletions
diff --git a/sys/amd64/include/vmm.h b/sys/amd64/include/vmm.h index 2fb2194..024c30e 100644 --- a/sys/amd64/include/vmm.h +++ b/sys/amd64/include/vmm.h @@ -267,9 +267,7 @@ struct vm_exit { uint32_t eax; /* valid for out */ } inout; struct { - uint64_t cr3; uint64_t gpa; - int rwx; struct vie vie; } paging; /* diff --git a/sys/amd64/vmm/intel/vmx.c b/sys/amd64/vmm/intel/vmx.c index af4a03f..2b6ef35 100644 --- a/sys/amd64/vmm/intel/vmx.c +++ b/sys/amd64/vmm/intel/vmx.c @@ -1303,9 +1303,7 @@ vmx_exit_process(struct vmx *vmx, int vcpu, struct vm_exit *vmexit) cr3, qual, &vmexit->u.paging.vie); if (!handled) { vmexit->exitcode = VM_EXITCODE_PAGING; - vmexit->u.paging.cr3 = cr3; vmexit->u.paging.gpa = gpa; - vmexit->u.paging.rwx = qual & 0x7; } break; default: diff --git a/usr.sbin/bhyve/fbsdrun.c b/usr.sbin/bhyve/fbsdrun.c index b1c7098..06e043c 100644 --- a/usr.sbin/bhyve/fbsdrun.c +++ b/usr.sbin/bhyve/fbsdrun.c @@ -453,8 +453,7 @@ vmexit_paging(struct vmctx *ctx, struct vm_exit *vmexit, int *pvcpu) int err; stats.vmexit_paging++; - err = emulate_mem(ctx, *pvcpu, vmexit->u.paging.gpa, vmexit->rip, - vmexit->u.paging.cr3, vmexit->u.paging.rwx, + err = emulate_mem(ctx, *pvcpu, vmexit->u.paging.gpa, &vmexit->u.paging.vie); if (err) { diff --git a/usr.sbin/bhyve/mem.c b/usr.sbin/bhyve/mem.c index dc43ff4..27f4782 100644 --- a/usr.sbin/bhyve/mem.c +++ b/usr.sbin/bhyve/mem.c @@ -156,8 +156,7 @@ mem_write(void *ctx, int vcpu, uint64_t gpa, uint64_t wval, int size, void *arg) } int -emulate_mem(struct vmctx *ctx, int vcpu, uint64_t paddr, uint64_t rip, - uint64_t cr3, int mode, struct vie *vie) +emulate_mem(struct vmctx *ctx, int vcpu, uint64_t paddr, struct vie *vie) { struct mmio_rb_range *entry; int err; diff --git a/usr.sbin/bhyve/mem.h b/usr.sbin/bhyve/mem.h index b34c1fd..88fafe1 100644 --- a/usr.sbin/bhyve/mem.h +++ b/usr.sbin/bhyve/mem.h @@ -50,8 +50,7 @@ struct mem_range { #define MEM_F_RW 0x3 void init_mem(void); -int emulate_mem(struct vmctx *, int vcpu, uint64_t paddr, uint64_t rip, - uint64_t cr3, int mode, struct vie *vie); +int emulate_mem(struct vmctx *, int vcpu, uint64_t paddr, struct vie *vie); int register_mem(struct mem_range *memp); |