aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc64/kernel/iommu_common.h
diff options
context:
space:
mode:
authorJoerg Roedel <joerg.roedel@amd.com>2008-10-16 01:02:14 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2008-10-16 14:21:33 -0400
commit0fcff28f47194445f37264d750dbb13d3d894d0b (patch)
treea8342a657466032a9afc83fc53bb90eb24330a7f /arch/sparc64/kernel/iommu_common.h
parenteb117d3e519f99567ddd2c86386a6e64c6e471cd (diff)
sparc64: use iommu_num_pages function in IOMMU code
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com> Acked-by: David S. Miller <davem@davemloft.net> Cc: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Cc: Muli Ben-Yehuda <muli@il.ibm.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/sparc64/kernel/iommu_common.h')
-rw-r--r--arch/sparc64/kernel/iommu_common.h14
1 files changed, 2 insertions, 12 deletions
diff --git a/arch/sparc64/kernel/iommu_common.h b/arch/sparc64/kernel/iommu_common.h
index 202d8ae2a67e..591f5879039c 100644
--- a/arch/sparc64/kernel/iommu_common.h
+++ b/arch/sparc64/kernel/iommu_common.h
@@ -35,17 +35,6 @@
35 35
36#define SG_ENT_PHYS_ADDRESS(SG) (__pa(sg_virt((SG)))) 36#define SG_ENT_PHYS_ADDRESS(SG) (__pa(sg_virt((SG))))
37 37
38static inline unsigned long iommu_nr_pages(unsigned long vaddr,
39 unsigned long slen)
40{
41 unsigned long npages;
42
43 npages = IO_PAGE_ALIGN(vaddr + slen) - (vaddr & IO_PAGE_MASK);
44 npages >>= IO_PAGE_SHIFT;
45
46 return npages;
47}
48
49static inline int is_span_boundary(unsigned long entry, 38static inline int is_span_boundary(unsigned long entry,
50 unsigned long shift, 39 unsigned long shift,
51 unsigned long boundary_size, 40 unsigned long boundary_size,
@@ -53,7 +42,8 @@ static inline int is_span_boundary(unsigned long entry,
53 struct scatterlist *sg) 42 struct scatterlist *sg)
54{ 43{
55 unsigned long paddr = SG_ENT_PHYS_ADDRESS(outs); 44 unsigned long paddr = SG_ENT_PHYS_ADDRESS(outs);
56 int nr = iommu_nr_pages(paddr, outs->dma_length + sg->length); 45 int nr = iommu_num_pages(paddr, outs->dma_length + sg->length,
46 IO_PAGE_SIZE);
57 47
58 return iommu_is_span_boundary(entry, nr, shift, boundary_size); 48 return iommu_is_span_boundary(entry, nr, shift, boundary_size);
59} 49}