History

memblock: replace free_bootmem_late with memblock_free_late

The free_bootmem_late and memblock_free_late do exactly the same thing: they iterate over a range and give pages to the page allocator. Replace calls to free_bootmem_late with calls to memblock_free_late and remove the bootmem variant.

Mike Rapoport committed 8 years ago

Commit 53ab85e1 parent 20132885 files · +6 −31Browse files

Unified · Split

5 files
  1. arch/sparc/kernel/mdesc.c +2 −1
  2. arch/x86/platform/efi/quirks.c +3 −3
  3. drivers/firmware/efi/apple-properties.c +1 −1
  4. include/linux/bootmem.h +0 −2
  5. mm/nobootmem.c +0 −24
arch/sparc/kernel/mdesc.c+2−1
@@ -12,6 +12,7 @@ · 11 unmodified lines
1212 #include <linux/mm.h>
1313 #include <linux/miscdevice.h>
1414 #include <linux/bootmem.h>
15+#include <linux/memblock.h>
1516 #include <linux/export.h>
1617 #include <linux/refcount.h>
1718
@@ -190,7 +191,7 @@ static void __init mdesc_memblock_free(struct mdesc_handle *hp) · 172 unmodified lines
190191
191192 alloc_size = PAGE_ALIGN(hp->handle_size);
192193 start = __pa(hp);
193− free_bootmem_late(start, alloc_size);
194+ memblock_free_late(start, alloc_size);
194195 }
195196
196197 static struct mdesc_mem_ops memblock_mdesc_ops = {
arch/x86/platform/efi/quirks.c+3−3
@@ -333,7 +333,7 @@ void __init efi_reserve_boot_services(void) · 332 unmodified lines
333333
334334 /*
335335 * Because the following memblock_reserve() is paired
336− * with free_bootmem_late() for this region in
336+ * with memblock_free_late() for this region in
337337 * efi_free_boot_services(), we must be extremely
338338 * careful not to reserve, and subsequently free,
339339 * critical regions of memory (like the kernel image) or
@@ -364,7 +364,7 @@ void __init efi_reserve_boot_services(void) · 24 unmodified lines
364364 * doesn't make sense as far as the firmware is
365365 * concerned, but it does provide us with a way to tag
366366 * those regions that must not be paired with
367− * free_bootmem_late().
367+ * memblock_free_late().
368368 */
369369 md->attribute |= EFI_MEMORY_RUNTIME;
370370 }
@@ -414,7 +414,7 @@ void __init efi_free_boot_services(void) · 43 unmodified lines
414414 size -= rm_size;
415415 }
416416
417− free_bootmem_late(start, size);
417+ memblock_free_late(start, size);
418418 }
419419
420420 if (!num_entries)
drivers/firmware/efi/apple-properties.c+1−1
@@ -235,7 +235,7 @@ static int __init map_properties(void) · 234 unmodified lines
235235 */
236236 data->len = 0;
237237 memunmap(data);
238− free_bootmem_late(pa_data + sizeof(*data), data_len);
238+ memblock_free_late(pa_data + sizeof(*data), data_len);
239239
240240 return ret;
241241 }
include/linux/bootmem.h+0−2
@@ -30,8 +30,6 @@ extern unsigned long free_all_bootmem(void); · 29 unmodified lines
3030 extern void reset_node_managed_pages(pg_data_t *pgdat);
3131 extern void reset_all_zones_managed_pages(void);
3232
33−extern void free_bootmem_late(unsigned long physaddr, unsigned long size);
34−
3533 /* We are using top down, so it is safe to use 0 here */
3634 #define BOOTMEM_LOW_LIMIT 0
3735
mm/nobootmem.c+0−24
@@ -33,30 +33,6 @@ unsigned long min_low_pfn; · 32 unmodified lines
3333 unsigned long max_pfn;
3434 unsigned long long max_possible_pfn;
3535
36−/**
37− * free_bootmem_late - free bootmem pages directly to page allocator
38− * @addr: starting address of the range
39− * @size: size of the range in bytes
40− *
41− * This is only useful when the bootmem allocator has already been torn
42− * down, but we are still initializing the system. Pages are given directly
43− * to the page allocator, no bootmem metadata is updated because it is gone.
44− */
45−void __init free_bootmem_late(unsigned long addr, unsigned long size)
46−{
47− unsigned long cursor, end;
48−
49− kmemleak_free_part_phys(addr, size);
50−
51− cursor = PFN_UP(addr);
52− end = PFN_DOWN(addr + size);
53−
54− for (; cursor < end; cursor++) {
55− __free_pages_bootmem(pfn_to_page(cursor), cursor, 0);
56− totalram_pages++;
57− }
58−}
59−
6036 static void __init __free_pages_memory(unsigned long start, unsigned long end)
6137 {
6238 int order;

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t