From: Chris Wright Date: Tue, 20 Jun 2006 08:10:35 +0000 (-0700) Subject: Sparc32 iommu patch from DaveM X-Git-Tag: v2.6.16.21~4 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=68fd1533f03b08fdc3d197d21340060ccdf6c5fd;p=thirdparty%2Fkernel%2Fstable-queue.git Sparc32 iommu patch from DaveM --- diff --git a/queue-2.6.17/series b/queue-2.6.17/series index 739856dfe7e..302f6f43092 100644 --- a/queue-2.6.17/series +++ b/queue-2.6.17/series @@ -8,3 +8,4 @@ sctp-reset-rtt_in_progress-for-the-chunk-when-processing-its-sack.patch sctp-send-only-1-window-update-sack-per-message.patch sctp-fix-persistent-slowdown-in-sctp-when-a-gap-ack-consumes-rx-buffer.patch ethtool-fix-ufo-typo.patch +sparc32-fix-iommu_flush_iotlb-end-address.patch diff --git a/queue-2.6.17/sparc32-fix-iommu_flush_iotlb-end-address.patch b/queue-2.6.17/sparc32-fix-iommu_flush_iotlb-end-address.patch new file mode 100644 index 00000000000..42c2885f365 --- /dev/null +++ b/queue-2.6.17/sparc32-fix-iommu_flush_iotlb-end-address.patch @@ -0,0 +1,33 @@ +From stable-bounces@linux.kernel.org Tue Jun 20 00:45:05 2006 +Date: Tue, 20 Jun 2006 00:44:27 -0700 (PDT) +From: David Miller +To: stable@kernel.org +Cc: +Subject: 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 +Signed-off-by: David S. Miller +Signed-off-by: Chris Wright +--- + +--- + arch/sparc/mm/iommu.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- linux-2.6.17.1.orig/arch/sparc/mm/iommu.c ++++ linux-2.6.17.1/arch/sparc/mm/iommu.c +@@ -144,8 +144,9 @@ static void iommu_flush_iotlb(iopte_t *i + 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);