[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1338f713-946e-9b3f-28fe-309739321dfd@linux.ibm.com>
Date: Thu, 12 Jul 2018 16:36:15 +0200
From: Tony Krowiak <akrowiak@...ux.ibm.com>
To: Halil Pasic <pasic@...ux.ibm.com>,
Tony Krowiak <akrowiak@...ux.vnet.ibm.com>,
linux-s390@...r.kernel.org, linux-kernel@...r.kernel.org,
kvm@...r.kernel.org
Cc: freude@...ibm.com, schwidefsky@...ibm.com,
heiko.carstens@...ibm.com, borntraeger@...ibm.com,
cohuck@...hat.com, kwankhede@...dia.com,
bjsdjshi@...ux.vnet.ibm.com, pbonzini@...hat.com,
alex.williamson@...hat.com, pmorel@...ux.vnet.ibm.com,
alifm@...ux.vnet.ibm.com, mjrosato@...ux.vnet.ibm.com,
jjherne@...ux.vnet.ibm.com, thuth@...hat.com,
pasic@...ux.vnet.ibm.com, berrange@...hat.com,
fiuczy@...ux.vnet.ibm.com, buendgen@...ibm.com
Subject: Re: [PATCH v6 15/21] s390: vfio-ap: configure the guest's AP matrix
On 07/12/2018 01:22 AM, Halil Pasic wrote:
>
>
> On 06/29/2018 11:11 PM, Tony Krowiak wrote:
>> From: Tony Krowiak <akrowiak@...ux.ibm.com>
>>
>> Configures the AP adapters, usage domains and control domains for the
>> KVM guest from the matrix configured via the mediated matrix device's
>> sysfs attribute files.
>>
> [..]
>> +
>> +static void kvm_ap_set_crycb_masks(struct ap_matrix_mdev *matrix_mdev)
>> +{
>> + int nbytes;
>> + unsigned long *apm, *aqm, *adm;
>> +
>> + kvm_ap_clear_crycb_masks(matrix_mdev);
>> +
>> + apm = kvm_ap_get_crycb_apm(matrix_mdev);
>> + aqm = kvm_ap_get_crycb_aqm(matrix_mdev);
>> + adm = kvm_ap_get_crycb_adm(matrix_mdev);
>> +
>> + nbytes = KVM_AP_MASK_BYTES(matrix_mdev->matrix.apm_max + 1);
>> + memcpy(apm, matrix_mdev->matrix.apm, nbytes);
>> +
>> + nbytes = KVM_AP_MASK_BYTES(matrix_mdev->matrix.aqm_max + 1);
>> + memcpy(aqm, matrix_mdev->matrix.aqm, nbytes);
>> +
>> + /*
>> + * Merge the AQM and ADM since the ADM is a superset of the
>> + * AQM by agreed-upon convention.
>> + */
>> + bitmap_or(adm, matrix_mdev->matrix.adm, matrix_mdev->matrix.aqm,
>> + matrix_mdev->matrix.adm_max + 1);
>
> Are you sure this or works as expected? E.g. if adm_max == 15 the bitmaps
> include the least significant 2 bytes but you want the other two.
Since test system has only 15 domains defined this has never been a
problem. I'll write a function rather than using the bitmap_or().
>
>
>> +}
Powered by blists - more mailing lists