diff options
Diffstat (limited to 'arch/sparc64/kernel/iommu.c')
-rw-r--r-- | arch/sparc64/kernel/iommu.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/arch/sparc64/kernel/iommu.c b/arch/sparc64/kernel/iommu.c index 2a37a6ca2a16..1cc1995531e2 100644 --- a/arch/sparc64/kernel/iommu.c +++ b/arch/sparc64/kernel/iommu.c | |||
@@ -575,7 +575,7 @@ static int dma_4u_map_sg(struct device *dev, struct scatterlist *sglist, | |||
575 | } | 575 | } |
576 | /* Allocate iommu entries for that segment */ | 576 | /* Allocate iommu entries for that segment */ |
577 | paddr = (unsigned long) SG_ENT_PHYS_ADDRESS(s); | 577 | paddr = (unsigned long) SG_ENT_PHYS_ADDRESS(s); |
578 | npages = iommu_num_pages(paddr, slen); | 578 | npages = iommu_num_pages(paddr, slen, IO_PAGE_SIZE); |
579 | entry = iommu_range_alloc(dev, iommu, npages, &handle); | 579 | entry = iommu_range_alloc(dev, iommu, npages, &handle); |
580 | 580 | ||
581 | /* Handle failure */ | 581 | /* Handle failure */ |
@@ -647,7 +647,8 @@ iommu_map_failed: | |||
647 | iopte_t *base; | 647 | iopte_t *base; |
648 | 648 | ||
649 | vaddr = s->dma_address & IO_PAGE_MASK; | 649 | vaddr = s->dma_address & IO_PAGE_MASK; |
650 | npages = iommu_num_pages(s->dma_address, s->dma_length); | 650 | npages = iommu_num_pages(s->dma_address, s->dma_length, |
651 | IO_PAGE_SIZE); | ||
651 | iommu_range_free(iommu, vaddr, npages); | 652 | iommu_range_free(iommu, vaddr, npages); |
652 | 653 | ||
653 | entry = (vaddr - iommu->page_table_map_base) | 654 | entry = (vaddr - iommu->page_table_map_base) |
@@ -715,7 +716,7 @@ static void dma_4u_unmap_sg(struct device *dev, struct scatterlist *sglist, | |||
715 | 716 | ||
716 | if (!len) | 717 | if (!len) |
717 | break; | 718 | break; |
718 | npages = iommu_num_pages(dma_handle, len); | 719 | npages = iommu_num_pages(dma_handle, len, IO_PAGE_SIZE); |
719 | iommu_range_free(iommu, dma_handle, npages); | 720 | iommu_range_free(iommu, dma_handle, npages); |
720 | 721 | ||
721 | entry = ((dma_handle - iommu->page_table_map_base) | 722 | entry = ((dma_handle - iommu->page_table_map_base) |