summaryrefslogtreecommitdiff
path: root/drivers/firmware/raspberrypi.c
diff options
context:
space:
mode:
authorDan Williams <dan.j.williams@intel.com>2020-01-13 18:22:44 +0100
committerIngo Molnar <mingo@kernel.org>2020-01-20 08:14:29 +0100
commitf0ef6523475f18ccd213e22ee593dfd131a2c5ea (patch)
treea0f2df98870bb25830765bc735ef282c83fefc0a /drivers/firmware/raspberrypi.c
parent1db91035d01aa8bfa2350c00ccb63d629b4041ad (diff)
efi: Fix efi_memmap_alloc() leaks
With efi_fake_memmap() and efi_arch_mem_reserve() the efi table may be updated and replaced multiple times. When that happens a previous dynamically allocated efi memory map can be garbage collected. Use the new EFI_MEMMAP_{SLAB,MEMBLOCK} flags to detect when a dynamically allocated memory map is being replaced. Debug statements in efi_memmap_free() reveal: efi: __efi_memmap_free:37: phys: 0x23ffdd580 size: 2688 flags: 0x2 efi: __efi_memmap_free:37: phys: 0x9db00 size: 2640 flags: 0x2 efi: __efi_memmap_free:37: phys: 0x9e580 size: 2640 flags: 0x2 ...a savings of 7968 bytes on a qemu boot with 2 entries specified to efi_fake_mem=. [ ardb: added a comment to clarify that efi_memmap_free() does nothing when called from efi_clean_memmap(), i.e., with data->flags == 0x0 ] Signed-off-by: Dan Williams <dan.j.williams@intel.com> Signed-off-by: Ard Biesheuvel <ardb@kernel.org> Signed-off-by: Ingo Molnar <mingo@kernel.org> Link: https://lore.kernel.org/r/20200113172245.27925-13-ardb@kernel.org
Diffstat (limited to 'drivers/firmware/raspberrypi.c')
0 files changed, 0 insertions, 0 deletions