alpha: use iommu_is_span_boundary helper function
PATCH 1/1 alpha: use iommu_is_span_boundary helper function
This is against the current git.
=
From: FUJITA Tomonori <[email protected]>
Subject: [PATCH -mm] alpha: use iommu_is_span_boundary helper function
iommu_is_span_boundary in lib/iommu-helper.c was exported for PARISC IOMMUs (commit 3715863aa142c4f4c5208f5f3e5e9bac06006d2f). Alpha's IOMMU can use it.
This removes the check on the boundary size alignment because iommu_is_span_boundary does.
--- arch/alpha/Kconfig | 3 +++ arch/alpha/kernel/pci_iommu.c | 12 ++---------- 2 files changed, 5 insertions(+), 10 deletions(-)
arch/alpha/Kconfig +3 -0
@@ -330,6 +330,9 @@ config PCI_DOMAINS config PCI_SYSCALL def_bool PCI +config IOMMU_HELPER + def_bool PCI + config ALPHA_CORE_AGP bool depends on ALPHA_GENERIC || ALPHA_TITAN || ALPHA_MARVEL
arch/alpha/kernel/pci_iommu.c +2 -10
@@ -10,6 +10,7 @@#include <linux/scatterlist.h> #include <linux/log2.h> #include <linux/dma-mapping.h> +#include <linux/iommu-helper.h> #include <asm/io.h> #include <asm/hwrpb.h>
@@ -125,14 +126,6 @@ iommu_arena_new(struct pci_controller *hose, dma_addr_t base,return iommu_arena_new_node (0 , hose, base, window_size, align); } -static inline int is_span_boundary (unsigned int index,unsigned int nr, -unsigned long shift, -unsigned long boundary_size) -{ - shift = (shift + index) & (boundary_size -1 ); -return shift + nr > boundary_size; -} -/* Must be called with the arena lock held */ static long iommu_arena_find_pages(struct device *dev, struct pci_iommu_arena *arena,
@@ -147,7 +140,6 @@ iommu_arena_find_pages(struct device *dev, struct pci_iommu_arena *arena, base = arena->dma_base >>PAGE_SHIFT ;if (dev) { boundary_size =dma_get_seg_boundary (dev) +1 ; -BUG_ON (!is_power_of_2 (boundary_size)); boundary_size >>=PAGE_SHIFT ; }else { boundary_size =1UL << (32 -PAGE_SHIFT );
@@ -161,7 +153,7 @@ iommu_arena_find_pages(struct device *dev, struct pci_iommu_arena *arena, again:while (i < n && p+i < nent) { -if (!i &&is_span_boundary (p, n, base, boundary_size)) { +if (!i &&iommu_is_span_boundary (p, n, base, boundary_size)) { p =ALIGN (p +1 , mask +1 ); goto again; }
Signature · 1 line
1.5.3.7
Quoted 9 lines · FUJITA Tomonori
From: FUJITA Tomonori <[email protected]>
Subject: [PATCH -mm] alpha: useiommu_is_span_boundaryhelper function
iommu_is_span_boundaryinlib/iommu-helper.cwas exported for PARISC IOMMUs (commit3715863aa142c4f4c5208f5f3e5e9bac06006d2f). Alpha's IOMMU can use it.This removes the check on the boundary size alignment because
iommu_is_span_boundarydoes.
Ivan.