Re: [PATCH v8 17/22] s390: vfio-ap: zeroize the AP queues.

From: Cornelia Huck
Date: Fri Aug 10 2018 - 05:14:57 EST


On Wed, 8 Aug 2018 10:44:27 -0400
Tony Krowiak <akrowiak@xxxxxxxxxxxxxxxxxx> wrote:

> From: Tony Krowiak <akrowiak@xxxxxxxxxxxxx>
>
> Let's call PAPQ(ZAPQ) to zeroize a queue:
>
> * For each queue configured for a mediated matrix device
> when it is released.
>
> Zeroizing a queue resets the queue, clears all pending
> messages for the queue entries and disables adapter interruptions
> associated with the queue.
>
> Signed-off-by: Tony Krowiak <akrowiak@xxxxxxxxxxxxx>
> Reviewed-by: Halil Pasic <pasic@xxxxxxxxxxxxx>
> Tested-by: Michael Mueller <mimu@xxxxxxxxxxxxx>
> Tested-by: Farhan Ali <alifm@xxxxxxxxxxxxx>
> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx>
> ---
> drivers/s390/crypto/vfio_ap_ops.c | 29 ++++++++++++++++++++++++++++-
> drivers/s390/crypto/vfio_ap_private.h | 25 +++++++++++++++++++++++++
> 2 files changed, 53 insertions(+), 1 deletions(-)
>

> @@ -788,7 +812,10 @@ static void vfio_ap_mdev_release(struct mdev_device *mdev)
> {
> struct ap_matrix_mdev *matrix_mdev = mdev_get_drvdata(mdev);
>
> - kvm_arch_crypto_clear_masks(matrix_mdev->kvm);
> + if (matrix_mdev->kvm)
> + kvm_arch_crypto_clear_masks(matrix_mdev->kvm);

Confused. Why is the check for matrix_mdev->kvm added here?

> +
> + vfio_ap_mdev_reset_queues(mdev, true);
> vfio_unregister_notifier(mdev_dev(mdev), VFIO_GROUP_NOTIFY,
> &matrix_mdev->group_notifier);
> matrix_mdev->kvm = NULL;