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 15:28:45 +0200
From:   Halil Pasic <pasic@...ux.ibm.com>
To:     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,
        Tony Krowiak <akrowiak@...ux.ibm.com>
Subject: Re: [PATCH v6 15/21] s390: vfio-ap: configure the guest's AP matrix



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).


Regards,
Halil

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ