lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Thu, 12 Jul 2018 16:37:11 +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 03:28 PM, 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
>
> [..]
>
>> +static inline void kvm_ap_clear_crycb_masks(struct ap_matrix_mdev 
>> *matrix_mdev)
>> +{
>> + memset(&matrix_mdev->kvm->arch.crypto.crycb->apcb0, 0,
>> + sizeof(matrix_mdev->kvm->arch.crypto.crycb->apcb0));
>> + memset(&matrix_mdev->kvm->arch.crypto.crycb->apcb1, 0,
>> + sizeof(matrix_mdev->kvm->arch.crypto.crycb->apcb1));
>> +}
>> +
>> +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);
>> +}
>> +
>
> [..]
>
>> +
>> +static int kvm_ap_configure_matrix(struct ap_matrix_mdev *matrix_mdev)
>> +{
>> +    int ret = 0;
>> +
>> +    mutex_lock(&matrix_mdev->kvm->lock);
>> +
>> +    ret = kvm_ap_validate_queue_sharing(matrix_mdev);
>> +    if (ret)
>> +        goto done;
>> +
>> +    kvm_ap_set_crycb_masks(matrix_mdev);
>> +
>> +done:
>> +    mutex_unlock(&matrix_mdev->kvm->lock);
>> +
>> +    return ret;
>> +}
>> +
>> +void kvm_ap_deconfigure_matrix(struct ap_matrix_mdev *matrix_mdev)
>> +{
>> +    mutex_lock(&matrix_mdev->kvm->lock);
>> +    kvm_ap_clear_crycb_masks(matrix_mdev);
>
> The guest may be running at this point of time, or?
>
> I think you need our safe update operation that we used to use for the
> initial set too, but then somebody was like it ain't necessary because
> we don't support hotplug (yet).

I agree.

>
>
>
> Regards,
> Halil
>
>> + mutex_unlock(&matrix_mdev->kvm->lock);
>> +}
>> +


Powered by blists - more mailing lists