Commit 3185d4d2 authored by Bob Breuer's avatar Bob Breuer Committed by David S. Miller

[SPARC]: Fix iommu_flush_iotlb end address

Fix the calculation of the end address when flushing iotlb entries to
ram.  This bug has been a cause of esp dma errors, and it affects
HyperSPARC systems much worse than SuperSPARC systems.
Signed-off-by: default avatarBob Breuer <breuerr@mc.net>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 92d452f0
...@@ -144,8 +144,9 @@ static void iommu_flush_iotlb(iopte_t *iopte, unsigned int niopte) ...@@ -144,8 +144,9 @@ static void iommu_flush_iotlb(iopte_t *iopte, unsigned int niopte)
unsigned long start; unsigned long start;
unsigned long end; unsigned long end;
start = (unsigned long)iopte & PAGE_MASK; start = (unsigned long)iopte;
end = PAGE_ALIGN(start + niopte*sizeof(iopte_t)); end = PAGE_ALIGN(start + niopte*sizeof(iopte_t));
start &= PAGE_MASK;
if (viking_mxcc_present) { if (viking_mxcc_present) {
while(start < end) { while(start < end) {
viking_mxcc_flush_page(start); viking_mxcc_flush_page(start);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment