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>
This commit is contained in:
parent
3c038e6be0
commit
536336c216
2 changed files with 27 additions and 0 deletions
|
@ -73,4 +73,7 @@ struct kvm_sync_regs {
|
|||
#define KVM_REG_S390_EPOCHDIFF (KVM_REG_S390 | KVM_REG_SIZE_U64 | 0x2)
|
||||
#define KVM_REG_S390_CPU_TIMER (KVM_REG_S390 | KVM_REG_SIZE_U64 | 0x3)
|
||||
#define KVM_REG_S390_CLOCK_COMP (KVM_REG_S390 | KVM_REG_SIZE_U64 | 0x4)
|
||||
#define KVM_REG_S390_PFTOKEN (KVM_REG_S390 | KVM_REG_SIZE_U64 | 0x5)
|
||||
#define KVM_REG_S390_PFCOMPARE (KVM_REG_S390 | KVM_REG_SIZE_U64 | 0x6)
|
||||
#define KVM_REG_S390_PFSELECT (KVM_REG_S390 | KVM_REG_SIZE_U64 | 0x7)
|
||||
#endif
|
||||
|
|
|
@ -561,6 +561,18 @@ static int kvm_arch_vcpu_ioctl_get_one_reg(struct kvm_vcpu *vcpu,
|
|||
r = put_user(vcpu->arch.sie_block->ckc,
|
||||
(u64 __user *)reg->addr);
|
||||
break;
|
||||
case KVM_REG_S390_PFTOKEN:
|
||||
r = put_user(vcpu->arch.pfault_token,
|
||||
(u64 __user *)reg->addr);
|
||||
break;
|
||||
case KVM_REG_S390_PFCOMPARE:
|
||||
r = put_user(vcpu->arch.pfault_compare,
|
||||
(u64 __user *)reg->addr);
|
||||
break;
|
||||
case KVM_REG_S390_PFSELECT:
|
||||
r = put_user(vcpu->arch.pfault_select,
|
||||
(u64 __user *)reg->addr);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -590,6 +602,18 @@ static int kvm_arch_vcpu_ioctl_set_one_reg(struct kvm_vcpu *vcpu,
|
|||
r = get_user(vcpu->arch.sie_block->ckc,
|
||||
(u64 __user *)reg->addr);
|
||||
break;
|
||||
case KVM_REG_S390_PFTOKEN:
|
||||
r = get_user(vcpu->arch.pfault_token,
|
||||
(u64 __user *)reg->addr);
|
||||
break;
|
||||
case KVM_REG_S390_PFCOMPARE:
|
||||
r = get_user(vcpu->arch.pfault_compare,
|
||||
(u64 __user *)reg->addr);
|
||||
break;
|
||||
case KVM_REG_S390_PFSELECT:
|
||||
r = get_user(vcpu->arch.pfault_select,
|
||||
(u64 __user *)reg->addr);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue