2006-03-07 17:27:03

by Jon Mason

[permalink] [raw]
Subject: [PATCH] x86-64: free_bootmem_node needs __pa in allocate_aperture

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 <[email protected]>

diff -r 5647dfd5ed8a arch/x86_64/kernel/aperture.c
--- a/arch/x86_64/kernel/aperture.c Tue Mar 7 02:47:07 2006
+++ b/arch/x86_64/kernel/aperture.c Tue Mar 7 10:59:55 2006
@@ -60,7 +60,7 @@
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",


2006-03-08 13:04:42

by Andi Kleen

[permalink] [raw]
Subject: Re: [PATCH] x86-64: free_bootmem_node needs __pa in allocate_aperture

On Tuesday 07 March 2006 18:26, Jon Mason wrote:
> 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 applied. What a nasty trap.

-Andi