> We need a functional free_pool implementation, as otherwise each > allocate_pool causes growth of the memory descriptor table. > > Different to free_pages, free_pool does not provide the size for the > to be freed allocation, thus we have to track the size ourselves. > > As the only EFI requirement for pool allocation is an alignment of > 8 bytes, we can keep allocating a range using the page allocator, > reserve the first 8 bytes for our bookkeeping and hand out the > remainder to the caller. This saves us from having to use any > independent data structures for tracking. > > To simplify the conversion between pool allocations and the corresponding > page allocation, we create an auxiliary struct efi_pool_allocation. > > Given the allocation size free_pool size can handoff freeing the page > range, which was indirectly allocated by a call to allocate_pool, > to free_pages. > > Signed-off-by: Stefan Brüns <stefan.bru...@rwth-aachen.de> > Reviewed-by: Alexander Graf <ag...@suse.de>
Thanks, applied to _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot