[PATCH] allocate GART/IOMMU aperture from any node

From: Mark Langsdorf
Date: Tue Apr 03 2007 - 13:15:34 EST


Linux always tries to allocate the GART/IOMMU aperture from the
boot node memory. However, it is legal to boot with no memory
attached to the boot node, in which case the system crashes with
invalid memory assignments. Generalize the memory allocation to
support any node in the system with memory.

Signed-off-by: Mark Langsdorf <mark.langsdorf@xxxxxxx>

--- linux-2.6.20/arch/x86_64/kernel/aperture.c.old 2007-04-02 17:11:18.000000000 -0500
+++ linux-2.6.20/arch/x86_64/kernel/aperture.c 2007-04-02 19:03:43.000000000 -0500
@@ -51,7 +51,6 @@ static void __init insert_aperture_resou

static u32 __init allocate_aperture(void)
{
- pg_data_t *nd0 = NODE_DATA(0);
u32 aper_size;
void *p;

@@ -65,12 +64,12 @@ static u32 __init allocate_aperture(void
* Unfortunately we cannot move it up because that would make the
* IOMMU useless.
*/
- p = __alloc_bootmem_node(nd0, aper_size, aper_size, 0);
+ p = __alloc_bootmem(aper_size, aper_size, 0);
if (!p || __pa(p)+aper_size > 0xffffffff) {
printk("Cannot allocate aperture memory hole (%p,%uK)\n",
p, aper_size>>10);
if (p)
- free_bootmem_node(nd0, __pa(p), aper_size);
+ free_bootmem(__pa(p), aper_size);
return 0;
}
printk("Mapping aperture over %d KB of RAM @ %lx\n",


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/