|
|
|
|
|
|
|
|
|
|
xen-changelog
[Xen-changelog] [xen-unstable] [IA64] Xen/ia64 XENMEM_exchange bug work
# HG changeset patch
# User awilliam@xxxxxxxxxxxx
# Date 1173296552 25200
# Node ID 210858e4f6d5abbf15ea24251f5306c0f3e32c9b
# Parent 50d5bf02e59e47735d563cf95d792dd14bc30939
[IA64] Xen/ia64 XENMEM_exchange bug work around
xen-unstable.hg c/s 13366:ed73ff8440d8 revealed that
XENMEM_exchange has been broken on Xen/ia64.
This is work around for it until the right fix.
Signed-off-by: Isaku Yamahata <yamahata@xxxxxxxxxxxxx>
---
linux-2.6-xen-sparse/arch/ia64/xen/hypervisor.c | 21 +++++++++++++++++++++
1 files changed, 21 insertions(+)
diff -r 50d5bf02e59e -r 210858e4f6d5
linux-2.6-xen-sparse/arch/ia64/xen/hypervisor.c
--- a/linux-2.6-xen-sparse/arch/ia64/xen/hypervisor.c Wed Mar 07 12:38:28
2007 -0700
+++ b/linux-2.6-xen-sparse/arch/ia64/xen/hypervisor.c Wed Mar 07 12:42:32
2007 -0700
@@ -205,6 +205,18 @@ static void contiguous_bitmap_clear(
#define MAX_CONTIG_ORDER 7
static unsigned long discontig_frames[1<<MAX_CONTIG_ORDER];
+/* Width of DMA addresses. 30 bits is a b44 limitation. */
+#define DEFAULT_DMA_BITS 30
+static unsigned int xen_ia64_dma_bits = DEFAULT_DMA_BITS;
+
+static int __init
+setup_dma_bits(char *str)
+{
+ xen_ia64_dma_bits = simple_strtoul(str, NULL, 0);
+ return 0;
+}
+__setup("xen_ia64_dma_bits=", setup_dma_bits);
+
/* Ensure multi-page extents are contiguous in machine memory. */
int
__xen_create_contiguous_region(unsigned long vstart,
@@ -233,6 +245,15 @@ __xen_create_contiguous_region(unsigned
},
.nr_exchanged = 0
};
+
+ /*
+ * XXX xen/ia64 vmm bug work around
+ * the c/s 13366:ed73ff8440d8 of xen-unstable.hg revealed that
+ * XENMEM_exchange has been broken on Xen/ia64.
+ * This is work around for it until the right fix.
+ */
+ if (address_bits < xen_ia64_dma_bits)
+ return -ENOSYS;
if (unlikely(order > MAX_CONTIG_ORDER))
return -ENOMEM;
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
<Prev in Thread] |
Current Thread |
[Next in Thread> |
- [Xen-changelog] [xen-unstable] [IA64] Xen/ia64 XENMEM_exchange bug work around,
Xen patchbot-unstable <=
|
|
|
|
|