summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--kvm.c24
-rw-r--r--kvm.h4
2 files changed, 9 insertions, 19 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;
}
diff --git a/kvm.h b/kvm.h
index b78c5a2..5e85333 100644
--- a/kvm.h
+++ b/kvm.h
@@ -498,8 +498,4 @@ typedef struct kvm_tpr_acl_ioc {
int cpu_index;
} kvm_tpr_acl_ioc_t;
-typedef struct kvm_set_boot_cpu_id_ioc {
- int id;
-} kvm_set_boot_cpu_id_ioc_t;
-
#endif /* __KVM_H */