[kernel] r8389 - in dists/etch/linux-2.6/debian: . patches/bugfix/all patches/bugfix/all/xen patches/series

Bastian Blank waldi at alioth.debian.org
Sat Mar 24 08:08:40 UTC 2007


Author: waldi
Date: Sat Mar 24 07:08:39 2007
New Revision: 8389

Added:
   dists/etch/linux-2.6/debian/patches/bugfix/all/
   dists/etch/linux-2.6/debian/patches/bugfix/all/xen/
   dists/etch/linux-2.6/debian/patches/bugfix/all/xen/swiotlb-highmem-copy.patch   (contents, props changed)
   dists/etch/linux-2.6/debian/patches/series/12-extra
Modified:
   dists/etch/linux-2.6/debian/changelog
Log:
xen: Fix highmem copy code.

* debian/changelog: Update.
* debian/patches/bugfix/all/xen/swiotlb-highmem-copy.patch: Add.
* debian/patches/series/12-extra: Add.


Modified: dists/etch/linux-2.6/debian/changelog
==============================================================================
--- dists/etch/linux-2.6/debian/changelog	(original)
+++ dists/etch/linux-2.6/debian/changelog	Sat Mar 24 07:08:39 2007
@@ -45,7 +45,10 @@
     Fix a panic in the bnx2 driver caused by an off-by-one error
     (closes: #410010)
 
- -- dann frazier <dannf at debian.org>  Fri, 23 Mar 2007 18:19:09 -0600
+  [ Bastian Blank ]
+  * xen: Fix highmem dma copy code. (closes: #415805)
+
+ -- Bastian Blank <waldi at debian.org>  Sat, 24 Mar 2007 08:06:27 +0100
 
 linux-2.6 (2.6.18.dfsg.1-11) unstable; urgency=low
 

Added: dists/etch/linux-2.6/debian/patches/bugfix/all/xen/swiotlb-highmem-copy.patch
==============================================================================
--- (empty file)
+++ dists/etch/linux-2.6/debian/patches/bugfix/all/xen/swiotlb-highmem-copy.patch	Sat Mar 24 07:08:39 2007
@@ -0,0 +1,27 @@
+diff -r d24540ecc512 arch/i386/kernel/swiotlb.c
+--- a/arch/i386/kernel/swiotlb.c	Tue Jan 23 23:37:22 2007 +0100
++++ b/arch/i386/kernel/swiotlb.c	Thu Mar 22 10:38:34 2007 +0100
+@@ -227,9 +227,12 @@ __sync_single(struct phys_addr buffer, c
+ 		char *dev, *host, *kmp;
+ 		len = size;
+ 		while (len != 0) {
++			unsigned long flags;
++
+ 			if (((bytes = len) + buffer.offset) > PAGE_SIZE)
+ 				bytes = PAGE_SIZE - buffer.offset;
+-			kmp  = kmap_atomic(buffer.page, KM_SWIOTLB);
++			local_irq_save(flags); /* protects KM_BOUNCE_READ */
++			kmp  = kmap_atomic(buffer.page, KM_BOUNCE_READ);
+ 			dev  = dma_addr + size - len;
+ 			host = kmp + buffer.offset;
+ 			if (dir == DMA_FROM_DEVICE) {
+@@ -237,7 +240,8 @@ __sync_single(struct phys_addr buffer, c
+ 					/* inaccessible */;
+ 			} else
+ 				memcpy(dev, host, bytes);
+-			kunmap_atomic(kmp, KM_SWIOTLB);
++			kunmap_atomic(kmp, KM_BOUNCE_READ);
++			local_irq_restore(flags);
+ 			len -= bytes;
+ 			buffer.page++;
+ 			buffer.offset = 0;

Added: dists/etch/linux-2.6/debian/patches/series/12-extra
==============================================================================
--- (empty file)
+++ dists/etch/linux-2.6/debian/patches/series/12-extra	Sat Mar 24 07:08:39 2007
@@ -0,0 +1 @@
++ bugfix/all/xen/swiotlb-highmem-copy.patch *_xen *_xen-vserver



More information about the Kernel-svn-changes mailing list