vfio/spapr: Use IOMMU pageshift rather than pagesize
The size is always equal to 1 page so let's use this. Later on this will be used for other checks which use page shifts to check the granularity of access. This should cause no behavioral change. Cc: stable@vger.kernel.org # v4.12+ Reviewed-by: David Gibson <david@gibson.dropbear.id.au> Acked-by: Alex Williamson <alex.williamson@redhat.com> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:
Родитель
941d810725
Коммит
1463edca67
|
@ -457,13 +457,13 @@ static void tce_iommu_unuse_page(struct tce_container *container,
|
||||||
}
|
}
|
||||||
|
|
||||||
static int tce_iommu_prereg_ua_to_hpa(struct tce_container *container,
|
static int tce_iommu_prereg_ua_to_hpa(struct tce_container *container,
|
||||||
unsigned long tce, unsigned long size,
|
unsigned long tce, unsigned long shift,
|
||||||
unsigned long *phpa, struct mm_iommu_table_group_mem_t **pmem)
|
unsigned long *phpa, struct mm_iommu_table_group_mem_t **pmem)
|
||||||
{
|
{
|
||||||
long ret = 0;
|
long ret = 0;
|
||||||
struct mm_iommu_table_group_mem_t *mem;
|
struct mm_iommu_table_group_mem_t *mem;
|
||||||
|
|
||||||
mem = mm_iommu_lookup(container->mm, tce, size);
|
mem = mm_iommu_lookup(container->mm, tce, 1ULL << shift);
|
||||||
if (!mem)
|
if (!mem)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
|
@ -487,7 +487,7 @@ static void tce_iommu_unuse_page_v2(struct tce_container *container,
|
||||||
if (!pua)
|
if (!pua)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
ret = tce_iommu_prereg_ua_to_hpa(container, *pua, IOMMU_PAGE_SIZE(tbl),
|
ret = tce_iommu_prereg_ua_to_hpa(container, *pua, tbl->it_page_shift,
|
||||||
&hpa, &mem);
|
&hpa, &mem);
|
||||||
if (ret)
|
if (ret)
|
||||||
pr_debug("%s: tce %lx at #%lx was not cached, ret=%d\n",
|
pr_debug("%s: tce %lx at #%lx was not cached, ret=%d\n",
|
||||||
|
@ -611,7 +611,7 @@ static long tce_iommu_build_v2(struct tce_container *container,
|
||||||
entry + i);
|
entry + i);
|
||||||
|
|
||||||
ret = tce_iommu_prereg_ua_to_hpa(container,
|
ret = tce_iommu_prereg_ua_to_hpa(container,
|
||||||
tce, IOMMU_PAGE_SIZE(tbl), &hpa, &mem);
|
tce, tbl->it_page_shift, &hpa, &mem);
|
||||||
if (ret)
|
if (ret)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче