SPARC32: 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: Bob Breuer <breuerr@mc.net> Signed-off-by: David S. Miller <davem@davemloft.net> Acked-by: William Lee Irwin III <wli@holomorphy.com> Signed-off-by: Adrian Bunk <bunk@stusta.de>
This commit is contained in:
@@ -144,8 +144,9 @@ static void iommu_flush_iotlb(iopte_t *iopte, unsigned int niopte)
|
||||
unsigned long start;
|
||||
unsigned long end;
|
||||
|
||||
start = (unsigned long)iopte & PAGE_MASK;
|
||||
start = (unsigned long)iopte;
|
||||
end = PAGE_ALIGN(start + niopte*sizeof(iopte_t));
|
||||
start &= PAGE_MASK;
|
||||
if (viking_mxcc_present) {
|
||||
while(start < end) {
|
||||
viking_mxcc_flush_page(start);
|
||||
|
||||
Reference in New Issue
Block a user