lkml.org 
[lkml]   [2015]   [Mar]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH kernel v6 09/29] vfio: powerpc/spapr: Rework attach/detach
    Date
    This is to make extended ownership and multiple groups support patches
    simpler for review.

    This is a mechanical patch.

    Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
    ---
    drivers/vfio/vfio_iommu_spapr_tce.c | 38 ++++++++++++++++++++++---------------
    1 file changed, 23 insertions(+), 15 deletions(-)

    diff --git a/drivers/vfio/vfio_iommu_spapr_tce.c b/drivers/vfio/vfio_iommu_spapr_tce.c
    index 838123e..353d2d5 100644
    --- a/drivers/vfio/vfio_iommu_spapr_tce.c
    +++ b/drivers/vfio/vfio_iommu_spapr_tce.c
    @@ -744,16 +744,21 @@ static int tce_iommu_attach_group(void *iommu_data,
    iommu_group_id(container->tbl->it_group),
    iommu_group_id(iommu_group));
    ret = -EBUSY;
    - } else if (container->enabled) {
    + goto unlock_exit;
    + }
    +
    + if (container->enabled) {
    pr_err("tce_vfio: attaching group #%u to enabled container\n",
    iommu_group_id(iommu_group));
    ret = -EBUSY;
    - } else {
    - ret = iommu_take_ownership(tbl);
    - if (!ret)
    - container->tbl = tbl;
    + goto unlock_exit;
    }

    + ret = iommu_take_ownership(tbl);
    + if (!ret)
    + container->tbl = tbl;
    +
    +unlock_exit:
    mutex_unlock(&container->lock);

    return ret;
    @@ -771,18 +776,21 @@ static void tce_iommu_detach_group(void *iommu_data,
    pr_warn("tce_vfio: detaching group #%u, expected group is #%u\n",
    iommu_group_id(iommu_group),
    iommu_group_id(tbl->it_group));
    - } else {
    - if (container->enabled) {
    - pr_warn("tce_vfio: detaching group #%u from enabled container, forcing disable\n",
    - iommu_group_id(tbl->it_group));
    - tce_iommu_disable(container);
    - }
    + goto unlock_exit;
    + }

    - /* pr_debug("tce_vfio: detaching group #%u from iommu %p\n",
    - iommu_group_id(iommu_group), iommu_group); */
    - container->tbl = NULL;
    - iommu_release_ownership(tbl);
    + if (container->enabled) {
    + pr_warn("tce_vfio: detaching group #%u from enabled container, forcing disable\n",
    + iommu_group_id(tbl->it_group));
    + tce_iommu_disable(container);
    }
    +
    + /* pr_debug("tce_vfio: detaching group #%u from iommu %p\n",
    + iommu_group_id(iommu_group), iommu_group); */
    + container->tbl = NULL;
    + iommu_release_ownership(tbl);
    +
    +unlock_exit:
    mutex_unlock(&container->lock);
    }

    --
    2.0.0


    \
     
     \ /
      Last update: 2015-03-13 09:21    [W:3.942 / U:0.372 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site