aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/kvm/kvm-s390.c
diff options
context:
space:
mode:
authorAvi Kivity <avi@redhat.com>2010-05-13 05:35:17 -0400
committerAvi Kivity <avi@redhat.com>2010-08-01 03:35:48 -0400
commit93736624635235cc5372ffca6d62816d02170724 (patch)
tree801205636b4d6da4127a6d33873902d690431f52 /arch/s390/kvm/kvm-s390.c
parent19483d144023f7f4817dedafe26d5fe9ff2e7087 (diff)
KVM: Consolidate arch specific vcpu ioctl locking
Now that all arch specific ioctls have centralized locking, it is easy to move it to the central dispatcher. Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'arch/s390/kvm/kvm-s390.c')
-rw-r--r--arch/s390/kvm/kvm-s390.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
index fd169f658bf8..0cb0da7822d5 100644
--- a/arch/s390/kvm/kvm-s390.c
+++ b/arch/s390/kvm/kvm-s390.c
@@ -638,16 +638,16 @@ long kvm_arch_vcpu_ioctl(struct file *filp,
638 void __user *argp = (void __user *)arg; 638 void __user *argp = (void __user *)arg;
639 long r; 639 long r;
640 640
641 if (ioctl == KVM_S390_INTERRUPT) { 641 switch (ioctl) {
642 case KVM_S390_INTERRUPT: {
642 struct kvm_s390_interrupt s390int; 643 struct kvm_s390_interrupt s390int;
643 644
645 r = -EFAULT;
644 if (copy_from_user(&s390int, argp, sizeof(s390int))) 646 if (copy_from_user(&s390int, argp, sizeof(s390int)))
645 return -EFAULT; 647 break;
646 return kvm_s390_inject_vcpu(vcpu, &s390int); 648 r = kvm_s390_inject_vcpu(vcpu, &s390int);
649 break;
647 } 650 }
648
649 vcpu_load(vcpu);
650 switch (ioctl) {
651 case KVM_S390_STORE_STATUS: 651 case KVM_S390_STORE_STATUS:
652 r = kvm_s390_vcpu_store_status(vcpu, arg); 652 r = kvm_s390_vcpu_store_status(vcpu, arg);
653 break; 653 break;
@@ -666,7 +666,6 @@ long kvm_arch_vcpu_ioctl(struct file *filp,
666 default: 666 default:
667 r = -EINVAL; 667 r = -EINVAL;
668 } 668 }
669 vcpu_put(vcpu);
670 return r; 669 return r;
671} 670}
672 671