From 405ba1943a8a3f331b39c8ca59d2f0e9571dd56a Mon Sep 17 00:00:00 2001 From: Robert Mustacchi Date: Tue, 14 Jun 2011 11:12:03 -0700 Subject: HVM-368 Clean up KVM_SET_IDENTITY_MAP_ADDR ioctl --- kvm.c | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) (limited to 'kvm.c') diff --git a/kvm.c b/kvm.c index 47f7c62..4e54432 100644 --- a/kvm.c +++ b/kvm.c @@ -2184,28 +2184,20 @@ kvm_ioctl(dev_t dev, int cmd, intptr_t arg, int md, cred_t *cr, int *rv) } case KVM_SET_IDENTITY_MAP_ADDR: { - kvm_id_map_addr_ioc_t *kvm_id_map_addr_ioc; - size_t sz = sizeof (kvm_id_map_addr_ioc_t); - struct kvm *kvmp; - - kvm_id_map_addr_ioc = kmem_zalloc(sz, KM_SLEEP); + uint64_t addr; - if (copyin(argp, kvm_id_map_addr_ioc, sz) != 0) { - kmem_free(kvm_id_map_addr_ioc, sz); - rval = EFAULT; + if (ksp->kds_kvmp == NULL) { + rval = EINVAL; break; } - if ((kvmp = ksp->kds_kvmp) == NULL) { - kmem_free(kvm_id_map_addr_ioc, sz); - rval = EINVAL; + if (copyin((void *)arg, &addr, sizeof (uint64_t)) != 0) { + rval = EFAULT; break; } - rval = kvm_vm_ioctl_set_identity_map_addr(kvmp, - kvm_id_map_addr_ioc->ident_addr); + rval = kvm_vm_ioctl_set_identity_map_addr(ksp->kds_kvmp, addr); - kmem_free(kvm_id_map_addr_ioc, sz); *rv = 0; break; } -- cgit v1.2.3