From: Jon Mason <jdmason@xxxxxxxxxx> free_bootmem_node expects a physical address to be passed in, but __alloc_bootmem_node returns a virtual one. That address needs to be translated to physical. Thanks, Jon Signed-off-by: Jon Mason <jdmason@xxxxxxxxxx> Signed-off-by: Andi Kleen <ak@xxxxxxx> --- arch/x86_64/kernel/aperture.c | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: linux/arch/x86_64/kernel/aperture.c =================================================================== --- linux.orig/arch/x86_64/kernel/aperture.c +++ linux/arch/x86_64/kernel/aperture.c @@ -60,7 +60,7 @@ static u32 __init allocate_aperture(void printk("Cannot allocate aperture memory hole (%p,%uK)\n", p, aper_size>>10); if (p) - free_bootmem_node(nd0, (unsigned long)p, aper_size); + free_bootmem_node(nd0, __pa(p), aper_size); return 0; } printk("Mapping aperture over %d KB of RAM @ %lx\n", - : send the line "unsubscribe linux-x86_64" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html