Skip to content

Commit

Permalink
KVM: Portability: move KVM_CHECK_EXTENSION
Browse files Browse the repository at this point in the history
Make KVM_CHECK_EXTENSION code into a function, all archs can define its
capability independently.

Signed-off-by: Zhang Xiantao <xiantao.zhang@intel.com>
Acked-by: Carsten Otte <cotte@de.ibm.com>
Signed-off-by: Avi Kivity <avi@qumranet.com>
  • Loading branch information
Zhang Xiantao authored and Avi Kivity committed Jan 30, 2008
1 parent a7e6c88 commit 018d00d
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 16 deletions.
3 changes: 3 additions & 0 deletions drivers/kvm/kvm.h
Original file line number Diff line number Diff line change
Expand Up @@ -628,6 +628,9 @@ long kvm_arch_vcpu_ioctl(struct file *filp,
unsigned int ioctl, unsigned long arg);
void kvm_arch_vcpu_load(struct kvm_vcpu *vcpu, int cpu);
void kvm_arch_vcpu_put(struct kvm_vcpu *vcpu);

int kvm_dev_ioctl_check_extension(long ext);

int kvm_vm_ioctl_set_memory_region(struct kvm *kvm,
struct
kvm_userspace_memory_region *mem,
Expand Down
18 changes: 2 additions & 16 deletions drivers/kvm/kvm_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -1198,23 +1198,9 @@ static long kvm_dev_ioctl(struct file *filp,
goto out;
r = kvm_dev_ioctl_create_vm();
break;
case KVM_CHECK_EXTENSION: {
int ext = (long)argp;

switch (ext) {
case KVM_CAP_IRQCHIP:
case KVM_CAP_HLT:
case KVM_CAP_MMU_SHADOW_CACHE_CONTROL:
case KVM_CAP_USER_MEMORY:
case KVM_CAP_SET_TSS_ADDR:
r = 1;
break;
default:
r = 0;
break;
}
case KVM_CHECK_EXTENSION:
r = kvm_dev_ioctl_check_extension((long)argp);
break;
}
case KVM_GET_VCPU_MMAP_SIZE:
r = -EINVAL;
if (arg)
Expand Down
20 changes: 20 additions & 0 deletions drivers/kvm/x86.c
Original file line number Diff line number Diff line change
Expand Up @@ -599,6 +599,26 @@ void decache_vcpus_on_cpu(int cpu)
spin_unlock(&kvm_lock);
}

int kvm_dev_ioctl_check_extension(long ext)
{
int r;

switch (ext) {
case KVM_CAP_IRQCHIP:
case KVM_CAP_HLT:
case KVM_CAP_MMU_SHADOW_CACHE_CONTROL:
case KVM_CAP_USER_MEMORY:
case KVM_CAP_SET_TSS_ADDR:
r = 1;
break;
default:
r = 0;
break;
}
return r;

}

long kvm_arch_dev_ioctl(struct file *filp,
unsigned int ioctl, unsigned long arg)
{
Expand Down

0 comments on commit 018d00d

Please sign in to comment.