summaryrefslogtreecommitdiff
path: root/kvm.c
diff options
context:
space:
mode:
authorRobert Mustacchi <rm@joyent.com>2011-06-10 15:44:52 -0700
committerRobert Mustacchi <rm@joyent.com>2011-06-10 15:44:52 -0700
commit4e5acf8543ec599ffff10f63a451e63d070a12d2 (patch)
treef8c9a7a38d5e1f11fa44d0326e1210d23d97142f /kvm.c
parent6aa99a358ab94557e9c26f829a4be2b19dd130a4 (diff)
downloadillumos-kvm-4e5acf8543ec599ffff10f63a451e63d070a12d2.tar.gz
HVM-361 revert KVM_SET_BOOT_CPU_ID ioctl to upstream interface
Diffstat (limited to 'kvm.c')
-rw-r--r--kvm.c24
1 files changed, 9 insertions, 15 deletions
diff --git a/kvm.c b/kvm.c
index 2345ce8..45fd028 100644
--- a/kvm.c
+++ b/kvm.c
@@ -2338,33 +2338,27 @@ kvm_ioctl(dev_t dev, int cmd, intptr_t arg, int md, cred_t *cr, int *rv)
}
case KVM_SET_BOOT_CPU_ID: {
- struct kvm_set_boot_cpu_id_ioc boot_cpu_id_ioc;
struct kvm *kvmp;
- if (copyin(argp, &boot_cpu_id_ioc,
- sizeof (boot_cpu_id_ioc)) != 0) {
- rval = EFAULT;
+ if ((kvmp = ksp->kds_kvmp) == NULL) {
+ rval = EINVAL;
break;
}
- if ((kvmp = ksp->kds_kvmp) == NULL) {
+ if (arg >= KVM_MAX_VCPUS) {
rval = EINVAL;
break;
}
mutex_enter(&kvmp->lock);
-#ifdef XXX
- if (atomic_read(&kvmp->online_vcpus) != 0)
- rval = -EBUSY;
- else {
-#else
- {
- XXX_KVM_PROBE;
-#endif
- kvmp->bsp_vcpu_id = boot_cpu_id_ioc.id;
+ if (kvmp->online_vcpus != 0) {
+ rval = EBUSY;
+ break;
+ } else {
+ kvmp->bsp_vcpu_id = arg;
+ *rv = kvmp->bsp_vcpu_id;
}
- *rv = kvmp->bsp_vcpu_id;
mutex_exit(&kvmp->lock);
break;
}