diff options
author | Robert Mustacchi <rm@joyent.com> | 2011-06-14 11:12:03 -0700 |
---|---|---|
committer | Robert Mustacchi <rm@joyent.com> | 2011-06-14 11:12:03 -0700 |
commit | 405ba1943a8a3f331b39c8ca59d2f0e9571dd56a (patch) | |
tree | 52d8a30b1d45b8e4f713a8032b88995604404bad /kvm.c | |
parent | c7f8cae268f9864a7b21d9edf6f32bdd10b1075d (diff) | |
download | illumos-kvm-405ba1943a8a3f331b39c8ca59d2f0e9571dd56a.tar.gz |
HVM-368 Clean up KVM_SET_IDENTITY_MAP_ADDR ioctl
Diffstat (limited to 'kvm.c')
-rw-r--r-- | kvm.c | 20 |
1 files changed, 6 insertions, 14 deletions
@@ -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; } |