[OpenBIOS] [commit] r997 - trunk/openbios-devel/libopenbios
repository service
svn at openbios.org
Thu Dec 30 23:02:09 CET 2010
Author: mcayland
Date: Thu Dec 30 23:02:09 2010
New Revision: 997
URL: http://tracker.coreboot.org/trac/openbios/changeset/997
Log:
Fix ofmem_posix_memalign() so that it also enforces physical alignment when re-allocating memory from the freelist.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
Modified:
trunk/openbios-devel/libopenbios/ofmem_common.c
Modified: trunk/openbios-devel/libopenbios/ofmem_common.c
==============================================================================
--- trunk/openbios-devel/libopenbios/ofmem_common.c Thu Dec 30 14:56:28 2010 (r996)
+++ trunk/openbios-devel/libopenbios/ofmem_common.c Thu Dec 30 23:02:09 2010 (r997)
@@ -108,7 +108,11 @@
/* waste at most 4K by taking an entry from the freelist */
if( *pp && (**pp).size < size + 0x1000 ) {
- ret = (void *)((uintptr_t)*pp + sizeof(alloc_desc_t));
+ /* Alignment should be on physical not virtual address */
+ pa = va2pa((uintptr_t)*pp + sizeof(alloc_desc_t));
+ pa = align_ptr(pa, alignment);
+ ret = (void *)pa2va(pa);
+
memset( ret, 0, (**pp).size - sizeof(alloc_desc_t) );
*pp = (**pp).next;
More information about the OpenBIOS
mailing list