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 <[EMAIL PROTECTED]>  Fri, 23 Mar 2007 18:19:09 -0600
+  [ Bastian Blank ]
+  * xen: Fix highmem dma copy code. (closes: #415805)
+
+ -- Bastian Blank <[EMAIL PROTECTED]>  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

_______________________________________________
Kernel-svn-changes mailing list
[email protected]
http://lists.alioth.debian.org/mailman/listinfo/kernel-svn-changes

Reply via email to