libpayload: Fix memalign() for fragmented alignment regions
Found a bug in the memory allocator ;-) If the total free space in an alignment region is large enough for an allocation but fragmented, such that there is no contiguous, sufficient large, free space in the region, memalign() was looking at the same region again and again in an endless loop. The advancing to the next region was just missing. Change-Id: I3fad833804675ee495577ca2749b007f46b5ff69 Signed-off-by: Nico Huber <nico.huber@secunet.com> Reviewed-on: http://review.coreboot.org/1906 Reviewed-by: Patrick Georgi <patrick@georgi-clan.de> Tested-by: build bot (Jenkins)
This commit is contained in:
parent
0a3f2393ae
commit
7a32e88f12
|
@ -387,6 +387,9 @@ look_further:
|
|||
count = 0;
|
||||
}
|
||||
}
|
||||
/* The free space in this region is fragmented,
|
||||
so we will move on and try the next one: */
|
||||
reg = reg->next;
|
||||
goto look_further; // end condition is once a new region is allocated - it always has enough space
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue