On 23.08.2018 15:12, Christian Borntraeger wrote:
> 
> 
> On 08/23/2018 12:25 PM, Pierre Morel wrote:
>> Copy the key mask to the right offset inside the shadow CRYCB
>>
>> Signed-off-by: Pierre Morel <[email protected]>
>> Reviewed-by: David Hildenbrand <[email protected]>
>> Reviewed-by: Cornelia Huck <[email protected]>
>> Reviewed-by: Janosch Frank <[email protected]>
>> ---
>>  arch/s390/kvm/vsie.c | 3 ++-
>>  1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/arch/s390/kvm/vsie.c b/arch/s390/kvm/vsie.c
>> index 9175518..12b9707 100644
>> --- a/arch/s390/kvm/vsie.c
>> +++ b/arch/s390/kvm/vsie.c
>> @@ -173,7 +173,8 @@ static int shadow_crycb(struct kvm_vcpu *vcpu, struct 
>> vsie_page *vsie_page)
>>              return set_validity_icpt(scb_s, 0x0039U);
>>  
>>      /* copy only the wrapping keys */
>> -    if (read_guest_real(vcpu, crycb_addr + 72, &vsie_page->crycb, 56))
>> +    if (read_guest_real(vcpu, crycb_addr + 72,
>> +                        vsie_page->crycb.dea_wrapping_key_mask, 56))
> 
> When we fix that code.., dont  we have to XOR the guest3 wrapping keys with
> the guest2 ones? 

That's done further down in that function.

> 
> 
>>              return set_validity_icpt(scb_s, 0x0035U);
>>  
>>      scb_s->ecb3 |= ecb3_flags;
>>
> 


-- 

Thanks,

David / dhildenb

Reply via email to