kvm-s390.c (2ac5e38ea4203852d6e99edd3cf11f044b0a409f) kvm-s390.c (e5d83c74a5800c2a1fa3ba982c1c4b2b39ae6db2)
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * hosting IBM Z kernel virtual machines (s390x)
4 *
5 * Copyright IBM Corp. 2008, 2018
6 *
7 * Author(s): Carsten Otte <cotte@de.ibm.com>
8 * Christian Borntraeger <borntraeger@de.ibm.com>

--- 450 unchanged lines hidden (view full) ---

459#endif
460 case KVM_CAP_ASYNC_PF:
461 case KVM_CAP_SYNC_REGS:
462 case KVM_CAP_ONE_REG:
463 case KVM_CAP_ENABLE_CAP:
464 case KVM_CAP_S390_CSS_SUPPORT:
465 case KVM_CAP_IOEVENTFD:
466 case KVM_CAP_DEVICE_CTRL:
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * hosting IBM Z kernel virtual machines (s390x)
4 *
5 * Copyright IBM Corp. 2008, 2018
6 *
7 * Author(s): Carsten Otte <cotte@de.ibm.com>
8 * Christian Borntraeger <borntraeger@de.ibm.com>

--- 450 unchanged lines hidden (view full) ---

459#endif
460 case KVM_CAP_ASYNC_PF:
461 case KVM_CAP_SYNC_REGS:
462 case KVM_CAP_ONE_REG:
463 case KVM_CAP_ENABLE_CAP:
464 case KVM_CAP_S390_CSS_SUPPORT:
465 case KVM_CAP_IOEVENTFD:
466 case KVM_CAP_DEVICE_CTRL:
467 case KVM_CAP_ENABLE_CAP_VM:
468 case KVM_CAP_S390_IRQCHIP:
469 case KVM_CAP_VM_ATTRIBUTES:
470 case KVM_CAP_MP_STATE:
471 case KVM_CAP_IMMEDIATE_EXIT:
472 case KVM_CAP_S390_INJECT_IRQ:
473 case KVM_CAP_S390_USER_SIGP:
474 case KVM_CAP_S390_USER_STSI:
475 case KVM_CAP_S390_SKEYS:

--- 126 unchanged lines hidden (view full) ---

602 unsigned int i;
603 struct kvm_vcpu *vcpu;
604
605 kvm_for_each_vcpu(i, vcpu, kvm) {
606 kvm_s390_sync_request(KVM_REQ_ICPT_OPEREXC, vcpu);
607 }
608}
609
467 case KVM_CAP_S390_IRQCHIP:
468 case KVM_CAP_VM_ATTRIBUTES:
469 case KVM_CAP_MP_STATE:
470 case KVM_CAP_IMMEDIATE_EXIT:
471 case KVM_CAP_S390_INJECT_IRQ:
472 case KVM_CAP_S390_USER_SIGP:
473 case KVM_CAP_S390_USER_STSI:
474 case KVM_CAP_S390_SKEYS:

--- 126 unchanged lines hidden (view full) ---

601 unsigned int i;
602 struct kvm_vcpu *vcpu;
603
604 kvm_for_each_vcpu(i, vcpu, kvm) {
605 kvm_s390_sync_request(KVM_REQ_ICPT_OPEREXC, vcpu);
606 }
607}
608
610static int kvm_vm_ioctl_enable_cap(struct kvm *kvm, struct kvm_enable_cap *cap)
609int kvm_vm_ioctl_enable_cap(struct kvm *kvm, struct kvm_enable_cap *cap)
611{
612 int r;
613
614 if (cap->flags)
615 return -EINVAL;
616
617 switch (cap->cap) {
618 case KVM_CAP_S390_IRQCHIP:

--- 1309 unchanged lines hidden (view full) ---

1928 struct kvm_s390_interrupt s390int;
1929
1930 r = -EFAULT;
1931 if (copy_from_user(&s390int, argp, sizeof(s390int)))
1932 break;
1933 r = kvm_s390_inject_vm(kvm, &s390int);
1934 break;
1935 }
610{
611 int r;
612
613 if (cap->flags)
614 return -EINVAL;
615
616 switch (cap->cap) {
617 case KVM_CAP_S390_IRQCHIP:

--- 1309 unchanged lines hidden (view full) ---

1927 struct kvm_s390_interrupt s390int;
1928
1929 r = -EFAULT;
1930 if (copy_from_user(&s390int, argp, sizeof(s390int)))
1931 break;
1932 r = kvm_s390_inject_vm(kvm, &s390int);
1933 break;
1934 }
1936 case KVM_ENABLE_CAP: {
1937 struct kvm_enable_cap cap;
1938 r = -EFAULT;
1939 if (copy_from_user(&cap, argp, sizeof(cap)))
1940 break;
1941 r = kvm_vm_ioctl_enable_cap(kvm, &cap);
1942 break;
1943 }
1944 case KVM_CREATE_IRQCHIP: {
1945 struct kvm_irq_routing_entry routing;
1946
1947 r = -EINVAL;
1948 if (kvm->arch.use_irqchip) {
1949 /* Set up dummy routing. */
1950 memset(&routing, 0, sizeof(routing));
1951 r = kvm_set_irq_routing(kvm, &routing, 0, 0);

--- 2375 unchanged lines hidden ---
1935 case KVM_CREATE_IRQCHIP: {
1936 struct kvm_irq_routing_entry routing;
1937
1938 r = -EINVAL;
1939 if (kvm->arch.use_irqchip) {
1940 /* Set up dummy routing. */
1941 memset(&routing, 0, sizeof(routing));
1942 r = kvm_set_irq_routing(kvm, &routing, 0, 0);

--- 2375 unchanged lines hidden ---