[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@valinux.co.jp>
This commit is contained in:
awilliam@xenbuild2.aw committed 2007-03-07 12:42:32 -07:00
1 parent 5ac1e3b0f0
commit 00af17ba90
1 file changed
+21
@@ -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,
@@ -234,6 +246,15 @@ __xen_create_contiguous_region(unsigned long vstart,
.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;
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.