lkml.org 
[lkml]   [2020]   [Jun]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v8 11/16] s390/vfio-ap: allow configuration of matrix mdev in use by a KVM guest
    Date
    The current support for pass-through crypto adapters does not allow
    configuration of a matrix mdev when it is in use by a KVM guest. Let's
    allow AP resources - i.e., adapters, domains and control domains - to be
    assigned to or unassigned from a matrix mdev while it is in use by a guest.
    This is in preparation for the introduction of support for dynamic
    configuration of the AP matrix for a running KVM guest.

    Signed-off-by: Tony Krowiak <akrowiak@linux.ibm.com>
    ---
    drivers/s390/crypto/vfio_ap_ops.c | 24 ------------------------
    1 file changed, 24 deletions(-)

    diff --git a/drivers/s390/crypto/vfio_ap_ops.c b/drivers/s390/crypto/vfio_ap_ops.c
    index 68bdf80807c6..4f59f471b4d3 100644
    --- a/drivers/s390/crypto/vfio_ap_ops.c
    +++ b/drivers/s390/crypto/vfio_ap_ops.c
    @@ -773,10 +773,6 @@ static ssize_t assign_adapter_store(struct device *dev,
    struct mdev_device *mdev = mdev_from_dev(dev);
    struct ap_matrix_mdev *matrix_mdev = mdev_get_drvdata(mdev);

    - /* If the guest is running, disallow assignment of adapter */
    - if (matrix_mdev->kvm)
    - return -EBUSY;
    -
    ret = kstrtoul(buf, 0, &apid);
    if (ret)
    return ret;
    @@ -828,10 +824,6 @@ static ssize_t unassign_adapter_store(struct device *dev,
    struct mdev_device *mdev = mdev_from_dev(dev);
    struct ap_matrix_mdev *matrix_mdev = mdev_get_drvdata(mdev);

    - /* If the guest is running, disallow un-assignment of adapter */
    - if (matrix_mdev->kvm)
    - return -EBUSY;
    -
    ret = kstrtoul(buf, 0, &apid);
    if (ret)
    return ret;
    @@ -891,10 +883,6 @@ static ssize_t assign_domain_store(struct device *dev,
    struct ap_matrix_mdev *matrix_mdev = mdev_get_drvdata(mdev);
    unsigned long max_apqi = matrix_mdev->matrix.aqm_max;

    - /* If the guest is running, disallow assignment of domain */
    - if (matrix_mdev->kvm)
    - return -EBUSY;
    -
    ret = kstrtoul(buf, 0, &apqi);
    if (ret)
    return ret;
    @@ -946,10 +934,6 @@ static ssize_t unassign_domain_store(struct device *dev,
    struct mdev_device *mdev = mdev_from_dev(dev);
    struct ap_matrix_mdev *matrix_mdev = mdev_get_drvdata(mdev);

    - /* If the guest is running, disallow un-assignment of domain */
    - if (matrix_mdev->kvm)
    - return -EBUSY;
    -
    ret = kstrtoul(buf, 0, &apqi);
    if (ret)
    return ret;
    @@ -991,10 +975,6 @@ static ssize_t assign_control_domain_store(struct device *dev,
    struct mdev_device *mdev = mdev_from_dev(dev);
    struct ap_matrix_mdev *matrix_mdev = mdev_get_drvdata(mdev);

    - /* If the guest is running, disallow assignment of control domain */
    - if (matrix_mdev->kvm)
    - return -EBUSY;
    -
    ret = kstrtoul(buf, 0, &id);
    if (ret)
    return ret;
    @@ -1036,10 +1016,6 @@ static ssize_t unassign_control_domain_store(struct device *dev,
    struct ap_matrix_mdev *matrix_mdev = mdev_get_drvdata(mdev);
    unsigned long max_domid = matrix_mdev->matrix.adm_max;

    - /* If the guest is running, disallow un-assignment of control domain */
    - if (matrix_mdev->kvm)
    - return -EBUSY;
    -
    ret = kstrtoul(buf, 0, &domid);
    if (ret)
    return ret;
    --
    2.21.1
    \
     
     \ /
      Last update: 2020-06-05 23:41    [W:3.951 / U:0.044 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site