mirror of
https://github.com/ipxe/ipxe
synced 2025-12-07 18:00:28 +03:00
[uheap] Prevent allocation of blocks with zero physical addresses
If the external heap ends up at the top of the system memory map then leave a gap after the heap to ensure that no block ends up being allocated with either a start or end address of zero, since this is frequently confusing to both code and humans. Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
@@ -100,8 +100,8 @@ static void uheap_find ( void ) {
|
||||
DBGC ( &uheap, "UHEAP largest region is [%#08lx,%#08lx)\n",
|
||||
start, end );
|
||||
|
||||
/* Align start and end addresses */
|
||||
after = ( end & ( UHEAP_ALIGN - 1 ) );
|
||||
/* Align start and end addresses, and prevent overflow to zero */
|
||||
after = ( end ? ( end & ( UHEAP_ALIGN - 1 ) ) : UHEAP_ALIGN );
|
||||
before = ( ( -start ) & ( UHEAP_ALIGN - 1 ) );
|
||||
strip = ( before + after );
|
||||
if ( strip > size )
|
||||
|
||||
Reference in New Issue
Block a user