Another attempt at fixing the chicked-and-egg issue where the number of memblock reservations for GICv3 LPI tables overflow the statically allocated table, and reallocating it involves allocating memory pages that may turn out to be the ones we were attempting to reserve in the first place.
If this is accepted as an appropriate fix, something similar should be backported to v4.19 as well, although there, we'll need to increase the memblock reservation table size even more, given that it lacks a later optimization to the EFI memreserve code to merge the linked list entries. Cc: Catalin Marinas <[email protected]> Cc: Will Deacon <[email protected]> Cc: Andrew Morton <[email protected]> Cc: Marc Zyngier <[email protected]> Cc: James Morse <[email protected]> Cc: [email protected] Ard Biesheuvel (2): arm64: account for GICv3 LPI tables in static memblock reserve table efi/arm: Revert "Defer persistent reservations until after paging_init()" arch/arm64/include/asm/memory.h | 11 +++++++++++ arch/arm64/kernel/setup.c | 1 - drivers/firmware/efi/efi.c | 4 ---- drivers/firmware/efi/libstub/arm-stub.c | 3 --- include/linux/efi.h | 7 ------- include/linux/memblock.h | 3 --- mm/memblock.c | 10 ++++++++-- 7 files changed, 19 insertions(+), 20 deletions(-) -- 2.20.1
