As the comment above the function suggested the shadowing of the guest2 CRYCB can only accept a format 1 since AP instructions are not supported in the guest. Let's modify the check which allowed to accept a format 2 too. Signed-off-by: Pierre Morel <pmorel@xxxxxxxxxxxxx> --- arch/s390/kvm/vsie.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/arch/s390/kvm/vsie.c b/arch/s390/kvm/vsie.c index 12b9707..56a9d47 100644 --- a/arch/s390/kvm/vsie.c +++ b/arch/s390/kvm/vsie.c @@ -156,7 +156,9 @@ static int shadow_crycb(struct kvm_vcpu *vcpu, struct vsie_page *vsie_page) u8 ecb3_flags; scb_s->crycbd = 0; - if (!(crycbd_o & vcpu->arch.sie_block->crycbd & CRYCB_FORMAT1)) + if (!(crycbd_o == CRYCB_FORMAT1)) + return 0; + if (!(vcpu->arch.sie_block->crycbd & CRYCB_FORMAT1)) return 0; /* format-1 is supported with message-security-assist extension 3 */ if (!test_kvm_facility(vcpu->kvm, 76)) -- 2.7.4