Re: [RFC 01/19] KVM: s390: SIE considerations for AP Queue virtualization

Tony Krowiak
2017-11-02T19:53:26Z

On 11/02/2017 07:54 AM, Christian Borntraeger wrote:
> To make the whole series smaller I will apply some of these patches
> directly (those of which are "obvious" and touch kvm/s390 only)
Okay
>
>
> On 10/13/2017 07:38 PM, Tony Krowiak wrote:
>> The Crypto Control Block (CRYCB) is referenced by the SIE state
>> description and controls KVM guest access to the Adjunct
>> Processor (AP) adapters, usage domains and control domains.
>> This patch defines the AP control blocks to be used for
>> controlling guest access to the AP adapters and domains.
>>
>> Signed-off-by: Tony Krowiak <akrowiak@linux.vnet.ibm.com>
> thanks applied.
>> ---
>> arch/s390/include/asm/kvm_host.h | 25 +++++++++++++++++++++----
>> 1 files changed, 21 insertions(+), 4 deletions(-)
>>
>> diff --git a/arch/s390/include/asm/kvm_host.h b/arch/s390/include/asm/kvm_host.h
>> index 51375e7..50a6b25 100644
>> --- a/arch/s390/include/asm/kvm_host.h
>> +++ b/arch/s390/include/asm/kvm_host.h
>> @@ -685,11 +685,28 @@ struct kvm_s390_crypto {
>> __u8 dea_kw;
>> };
>>
>> +#define APCB0_MASK_SIZE 1
>> +struct kvm_s390_apcb0 {
>> + __u64 apm[APCB0_MASK_SIZE]; /* 0x0000 */
>> + __u64 aqm[APCB0_MASK_SIZE]; /* 0x0008 */
>> + __u64 adm[APCB0_MASK_SIZE]; /* 0x0010 */
>> + __u64 reserved18; /* 0x0018 */
>> +};
>> +
>> +#define APCB1_MASK_SIZE 4
>> +struct kvm_s390_apcb1 {
>> + __u64 apm[APCB1_MASK_SIZE]; /* 0x0000 */
>> + __u64 aqm[APCB1_MASK_SIZE]; /* 0x0020 */
>> + __u64 adm[APCB1_MASK_SIZE]; /* 0x0040 */
>> + __u64 reserved60[4]; /* 0x0060 */
>> +};
>> +
>> struct kvm_s390_crypto_cb {
>> - __u8 reserved00[72]; /* 0x0000 */
>> - __u8 dea_wrapping_key_mask[24]; /* 0x0048 */
>> - __u8 aes_wrapping_key_mask[32]; /* 0x0060 */
>> - __u8 reserved80[128]; /* 0x0080 */
>> + struct kvm_s390_apcb0 apcb0; /* 0x0000 */
>> + __u8 reserved20[40]; /* 0x0020 */
>> + __u8 dea_wrapping_key_mask[24]; /* 0x0048 */
>> + __u8 aes_wrapping_key_mask[32]; /* 0x0060 */
>> + struct kvm_s390_apcb1 apcb1; /* 0x0080 */
>> };
>>
>> /*
>>