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 04/29] vfio: powerpc/spapr: Use it_page_size
    Date
    This makes use of the it_page_size from the iommu_table struct
    as page size can differ.

    This replaces missing IOMMU_PAGE_SHIFT macro in commented debug code
    as recently introduced IOMMU_PAGE_XXX macros do not include
    IOMMU_PAGE_SHIFT.

    Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
    Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
    ---
    drivers/vfio/vfio_iommu_spapr_tce.c | 26 +++++++++++++-------------
    1 file changed, 13 insertions(+), 13 deletions(-)

    diff --git a/drivers/vfio/vfio_iommu_spapr_tce.c b/drivers/vfio/vfio_iommu_spapr_tce.c
    index 4716b97..431e605 100644
    --- a/drivers/vfio/vfio_iommu_spapr_tce.c
    +++ b/drivers/vfio/vfio_iommu_spapr_tce.c
    @@ -93,7 +93,7 @@ static int tce_iommu_enable(struct tce_container *container)
    * enforcing the limit based on the max that the guest can map.
    */
    down_write(&current->mm->mmap_sem);
    - npages = (tbl->it_size << IOMMU_PAGE_SHIFT_4K) >> PAGE_SHIFT;
    + npages = (tbl->it_size << tbl->it_page_shift) >> PAGE_SHIFT;
    locked = current->mm->locked_vm + npages;
    lock_limit = rlimit(RLIMIT_MEMLOCK) >> PAGE_SHIFT;
    if (locked > lock_limit && !capable(CAP_IPC_LOCK)) {
    @@ -122,7 +122,7 @@ static void tce_iommu_disable(struct tce_container *container)

    down_write(&current->mm->mmap_sem);
    current->mm->locked_vm -= (container->tbl->it_size <<
    - IOMMU_PAGE_SHIFT_4K) >> PAGE_SHIFT;
    + container->tbl->it_page_shift) >> PAGE_SHIFT;
    up_write(&current->mm->mmap_sem);
    }

    @@ -224,7 +224,7 @@ static long tce_iommu_build(struct tce_container *container,
    tce, ret);
    break;
    }
    - tce += IOMMU_PAGE_SIZE_4K;
    + tce += IOMMU_PAGE_SIZE(tbl);
    }

    if (ret)
    @@ -269,8 +269,8 @@ static long tce_iommu_ioctl(void *iommu_data,
    if (info.argsz < minsz)
    return -EINVAL;

    - info.dma32_window_start = tbl->it_offset << IOMMU_PAGE_SHIFT_4K;
    - info.dma32_window_size = tbl->it_size << IOMMU_PAGE_SHIFT_4K;
    + info.dma32_window_start = tbl->it_offset << tbl->it_page_shift;
    + info.dma32_window_size = tbl->it_size << tbl->it_page_shift;
    info.flags = 0;

    if (copy_to_user((void __user *)arg, &info, minsz))
    @@ -300,8 +300,8 @@ static long tce_iommu_ioctl(void *iommu_data,
    VFIO_DMA_MAP_FLAG_WRITE))
    return -EINVAL;

    - if ((param.size & ~IOMMU_PAGE_MASK_4K) ||
    - (param.vaddr & ~IOMMU_PAGE_MASK_4K))
    + if ((param.size & ~IOMMU_PAGE_MASK(tbl)) ||
    + (param.vaddr & ~IOMMU_PAGE_MASK(tbl)))
    return -EINVAL;

    /* iova is checked by the IOMMU API */
    @@ -316,8 +316,8 @@ static long tce_iommu_ioctl(void *iommu_data,
    return ret;

    ret = tce_iommu_build(container, tbl,
    - param.iova >> IOMMU_PAGE_SHIFT_4K,
    - tce, param.size >> IOMMU_PAGE_SHIFT_4K);
    + param.iova >> tbl->it_page_shift,
    + tce, param.size >> tbl->it_page_shift);

    iommu_flush_tce(tbl);

    @@ -343,17 +343,17 @@ static long tce_iommu_ioctl(void *iommu_data,
    if (param.flags)
    return -EINVAL;

    - if (param.size & ~IOMMU_PAGE_MASK_4K)
    + if (param.size & ~IOMMU_PAGE_MASK(tbl))
    return -EINVAL;

    ret = iommu_tce_clear_param_check(tbl, param.iova, 0,
    - param.size >> IOMMU_PAGE_SHIFT_4K);
    + param.size >> tbl->it_page_shift);
    if (ret)
    return ret;

    ret = tce_iommu_clear(container, tbl,
    - param.iova >> IOMMU_PAGE_SHIFT_4K,
    - param.size >> IOMMU_PAGE_SHIFT_4K);
    + param.iova >> tbl->it_page_shift,
    + param.size >> tbl->it_page_shift);
    iommu_flush_tce(tbl);

    return ret;
    --
    2.0.0


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