# HG changeset patch
# User kfraser@xxxxxxxxxxxxxxxxxxxxx
# Date 1168597876 0
# Node ID f328425d553e22a04be4ed73dbdfa01172799746
# Parent 648e58e31c26c200e17c77c44e9658385f65db04
[LINUX] swiotlb: eliminate KM_SWIOTLB and thus the need for a Xen-specific
kmap_types.h.
Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx>
---
linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/kmap_types.h | 32
----------
linux-2.6-xen-sparse/arch/i386/kernel/swiotlb.c | 8 +-
2 files changed, 6 insertions(+), 34 deletions(-)
diff -r 648e58e31c26 -r f328425d553e
linux-2.6-xen-sparse/arch/i386/kernel/swiotlb.c
--- a/linux-2.6-xen-sparse/arch/i386/kernel/swiotlb.c Fri Jan 12 10:28:54
2007 +0000
+++ b/linux-2.6-xen-sparse/arch/i386/kernel/swiotlb.c Fri Jan 12 10:31:16
2007 +0000
@@ -238,9 +238,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) {
@@ -248,7 +251,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;
diff -r 648e58e31c26 -r f328425d553e
linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/kmap_types.h
--- a/linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/kmap_types.h Fri Jan
12 10:28:54 2007 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-#ifndef _ASM_KMAP_TYPES_H
-#define _ASM_KMAP_TYPES_H
-
-#include <linux/config.h>
-
-#ifdef CONFIG_DEBUG_HIGHMEM
-# define D(n) __KM_FENCE_##n ,
-#else
-# define D(n)
-#endif
-
-enum km_type {
-D(0) KM_BOUNCE_READ,
-D(1) KM_SKB_SUNRPC_DATA,
-D(2) KM_SKB_DATA_SOFTIRQ,
-D(3) KM_USER0,
-D(4) KM_USER1,
-D(5) KM_BIO_SRC_IRQ,
-D(6) KM_BIO_DST_IRQ,
-D(7) KM_PTE0,
-D(8) KM_PTE1,
-D(9) KM_IRQ0,
-D(10) KM_IRQ1,
-D(11) KM_SOFTIRQ0,
-D(12) KM_SOFTIRQ1,
-D(13) KM_SWIOTLB,
-D(14) KM_TYPE_NR
-};
-
-#undef D
-
-#endif
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|