KVM: s390: vsie: allow CRYCB FORMAT-1
When the host and guest both use a FORMAT-1 CRYCB, we copy the guest's FORMAT-0 APCB to a shadow CRYCB for use by vSIE. Signed-off-by: Pierre Morel <pmorel@linux.ibm.com> Signed-off-by: Tony Krowiak <akrowiak@linux.ibm.com> Message-Id: <20180925231641.4954-20-akrowiak@linux.vnet.ibm.com> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
This commit is contained in:
parent
56019f9aca
commit
19fd83a647
|
@ -136,6 +136,19 @@ static int prepare_cpuflags(struct kvm_vcpu *vcpu, struct vsie_page *vsie_page)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Copy to APCB FORMAT0 from APCB FORMAT0 */
|
||||||
|
static int setup_apcb00(struct kvm_vcpu *vcpu, unsigned long *apcb_s,
|
||||||
|
unsigned long apcb_o, unsigned long *apcb_h)
|
||||||
|
{
|
||||||
|
if (read_guest_real(vcpu, apcb_o, apcb_s,
|
||||||
|
sizeof(struct kvm_s390_apcb0)))
|
||||||
|
return -EFAULT;
|
||||||
|
|
||||||
|
bitmap_and(apcb_s, apcb_s, apcb_h, sizeof(struct kvm_s390_apcb0));
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* setup_apcb11 - Copy the FORMAT1 APCB from the guest to the shadow CRYCB
|
* setup_apcb11 - Copy the FORMAT1 APCB from the guest to the shadow CRYCB
|
||||||
* @vcpu: pointer to the virtual CPU
|
* @vcpu: pointer to the virtual CPU
|
||||||
|
@ -190,6 +203,12 @@ static int setup_apcb(struct kvm_vcpu *vcpu, struct kvm_s390_crypto_cb *crycb_s,
|
||||||
return setup_apcb11(vcpu, (unsigned long *)&crycb_s->apcb1,
|
return setup_apcb11(vcpu, (unsigned long *)&crycb_s->apcb1,
|
||||||
(unsigned long) &crycb->apcb1,
|
(unsigned long) &crycb->apcb1,
|
||||||
(unsigned long *)&crycb_h->apcb1);
|
(unsigned long *)&crycb_h->apcb1);
|
||||||
|
case CRYCB_FORMAT1:
|
||||||
|
if (fmt_h != CRYCB_FORMAT1)
|
||||||
|
return -EINVAL;
|
||||||
|
return setup_apcb00(vcpu, (unsigned long *) &crycb_s->apcb0,
|
||||||
|
(unsigned long) &crycb->apcb0,
|
||||||
|
(unsigned long *) &crycb_h->apcb0);
|
||||||
}
|
}
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue