aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/kvm
diff options
context:
space:
mode:
authorDominik Dingel <dingel@linux.vnet.ibm.com>2013-09-30 04:55:33 -0400
committerChristian Borntraeger <borntraeger@de.ibm.com>2014-01-30 07:11:05 -0500
commit536336c21697551ceca44bdffb9f53e6cc5f2f20 (patch)
treefd90db38f0b457deabad296b6999cc9b27d61634 /arch/s390/kvm
parent3c038e6be0e299d4d3762d0a9a29f02de6e04991 (diff)
KVM: async_pf: Exploit one reg interface for pfault
To enable pfault after live migration we need to expose pfault_token, pfault_select and pfault_compare, as one reg registers to userspace. So that qemu is able to transfer this between the source and the target. Signed-off-by: Dominik Dingel <dingel@linux.vnet.ibm.com> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Diffstat (limited to 'arch/s390/kvm')
-rw-r--r--arch/s390/kvm/kvm-s390.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
index d8e9f04977db..a5da2cc798c8 100644
--- a/arch/s390/kvm/kvm-s390.c
+++ b/arch/s390/kvm/kvm-s390.c
@@ -561,6 +561,18 @@ static int kvm_arch_vcpu_ioctl_get_one_reg(struct kvm_vcpu *vcpu,
561 r = put_user(vcpu->arch.sie_block->ckc, 561 r = put_user(vcpu->arch.sie_block->ckc,
562 (u64 __user *)reg->addr); 562 (u64 __user *)reg->addr);
563 break; 563 break;
564 case KVM_REG_S390_PFTOKEN:
565 r = put_user(vcpu->arch.pfault_token,
566 (u64 __user *)reg->addr);
567 break;
568 case KVM_REG_S390_PFCOMPARE:
569 r = put_user(vcpu->arch.pfault_compare,
570 (u64 __user *)reg->addr);
571 break;
572 case KVM_REG_S390_PFSELECT:
573 r = put_user(vcpu->arch.pfault_select,
574 (u64 __user *)reg->addr);
575 break;
564 default: 576 default:
565 break; 577 break;
566 } 578 }
@@ -590,6 +602,18 @@ static int kvm_arch_vcpu_ioctl_set_one_reg(struct kvm_vcpu *vcpu,
590 r = get_user(vcpu->arch.sie_block->ckc, 602 r = get_user(vcpu->arch.sie_block->ckc,
591 (u64 __user *)reg->addr); 603 (u64 __user *)reg->addr);
592 break; 604 break;
605 case KVM_REG_S390_PFTOKEN:
606 r = get_user(vcpu->arch.pfault_token,
607 (u64 __user *)reg->addr);
608 break;
609 case KVM_REG_S390_PFCOMPARE:
610 r = get_user(vcpu->arch.pfault_compare,
611 (u64 __user *)reg->addr);
612 break;
613 case KVM_REG_S390_PFSELECT:
614 r = get_user(vcpu->arch.pfault_select,
615 (u64 __user *)reg->addr);
616 break;
593 default: 617 default:
594 break; 618 break;
595 } 619 }