[kernel] r6881 - in dists/trunk/linux-2.6/debian: . arch patches/series

Jurij Smakov jurij-guest at costa.debian.org
Sat Jun 24 15:42:05 UTC 2006


Author: jurij-guest
Date: Sat Jun 24 15:41:57 2006
New Revision: 6881

Added:
   dists/trunk/linux-2.6/debian/patches/sparc32-iotlb.patch
Modified:
   dists/trunk/linux-2.6/debian/arch/defines
   dists/trunk/linux-2.6/debian/changelog
   dists/trunk/linux-2.6/debian/patches/series/1

Log:
* Move new changelog entries to 2.6.17-2, as -1 is uploaded already.
* Add sparc32-iotlb.patch.
* Bump ABI to 2 as a result.


Modified: dists/trunk/linux-2.6/debian/arch/defines
==============================================================================
--- dists/trunk/linux-2.6/debian/arch/defines	(original)
+++ dists/trunk/linux-2.6/debian/arch/defines	Sat Jun 24 15:41:57 2006
@@ -1,5 +1,5 @@
 [abi]
-abiname: 1
+abiname: 2
 
 [base]
 arches:

Modified: dists/trunk/linux-2.6/debian/changelog
==============================================================================
--- dists/trunk/linux-2.6/debian/changelog	(original)
+++ dists/trunk/linux-2.6/debian/changelog	Sat Jun 24 15:41:57 2006
@@ -1,3 +1,12 @@
+linux-2.6 (2.6.17-2) UNRELEASED; urgency=low
+
+  [ Jurij Smakov ]
+  * [sparc] Switch to gcc-4.1, as it produces the working kernel, while
+    gcc-4.0 does not. Bump ABI to 2 as a result.
+  * [sparc32] Add sparc32-iotlb.patch to fix DMA errors on sparc32.
+
+ -- Jurij Smakov <jurij at debian.org> 
+
 linux-2.6 (2.6.17-1) unstable; urgency=low
 
   [ Frederik Schüler ]
@@ -35,10 +44,6 @@
   * Add stable release 2.6.17.1:
     - xt_sctp: fix endless loop caused by 0 chunk length (CVE-2006-3085)
 
-  [ Jurij Smakov ]
-  * [sparc] Switch to gcc-4.1, as it produces the working kernel, while
-    gcc-4.0 does not.
-
  -- Bastian Blank <waldi at debian.org>  Thu, 22 Jun 2006 12:13:15 +0200
 
 linux-2.6 (2.6.16+2.6.17-rc3-0experimental.1) experimental; urgency=low

Modified: dists/trunk/linux-2.6/debian/patches/series/1
==============================================================================
--- dists/trunk/linux-2.6/debian/patches/series/1	(original)
+++ dists/trunk/linux-2.6/debian/patches/series/1	Sat Jun 24 15:41:57 2006
@@ -22,3 +22,4 @@
 + s390-drivers-ccw-uevent-cleanup.patch
 + mips-sb1-duart-tts.patch
 + 2.6.17.1
++ sparc32-iotlb.patch

Added: dists/trunk/linux-2.6/debian/patches/sparc32-iotlb.patch
==============================================================================
--- (empty file)
+++ dists/trunk/linux-2.6/debian/patches/sparc32-iotlb.patch	Sat Jun 24 15:41:57 2006
@@ -0,0 +1,37 @@
+From breuerr at mc.net Mon Jun 19 21:10:41 2006
+Date: Mon, 19 Jun 2006 23:08:59 -0500
+From: Bob Breuer <breuerr at mc.net>
+To: sparclinux at vger.kernel.org
+Subject: [PATCH] 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 at mc.net>
+---
+
+Just in case it's not obvious from the patch as to how the dma was
+broken:  Each dma mapping sets up iopte entries for the iommu, and the
+iommu only looks in main memory for the iopte entries.  If there is a
+group of iopte entries that are smaller than a page in size, but
+straddle a page boundary, the broken code would fail to flush the last
+page to ram.
+
+Bob
+
+diff --git a/arch/sparc/mm/iommu.c b/arch/sparc/mm/iommu.c
+index 77840c8..7215849 100644
+--- a/arch/sparc/mm/iommu.c
++++ b/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);



More information about the Kernel-svn-changes mailing list