diff options
| author | David Rientjes <rientjes@google.com> | 2011-05-24 20:11:16 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-05-25 11:39:03 -0400 |
| commit | 7bf02ea22c6cdd09e2d3f1d3c3fe366b834ae9af (patch) | |
| tree | c1c8aa415910e0f0deea1181759ddd2b5d6067fb | |
| parent | 851cc856d73d1185243c149ed0c0839df8a1b2fe (diff) | |
arch, mm: filter disallowed nodes from arch specific show_mem functions
Architectures that implement their own show_mem() function did not pass
the filter argument to show_free_areas() to appropriately avoid emitting
the state of nodes that are disallowed in the current context. This patch
now passes the filter argument to show_free_areas() so those nodes are now
avoided.
This patch also removes the show_free_areas() wrapper around
__show_free_areas() and converts existing callers to pass an empty filter.
ia64 emits additional information for each node, so skip_free_areas_zone()
must be made global to filter disallowed nodes and it is converted to use
a nid argument rather than a zone for this use case.
Signed-off-by: David Rientjes <rientjes@google.com>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Fenghua Yu <fenghua.yu@intel.com>
Cc: Kyle McMartin <kyle@mcmartin.ca>
Cc: Helge Deller <deller@gmx.de>
Cc: James Bottomley <jejb@parisc-linux.org>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Guan Xuetao <gxt@mprc.pku.edu.cn>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
| -rw-r--r-- | arch/arm/mm/init.c | 2 | ||||
| -rw-r--r-- | arch/ia64/mm/contig.c | 10 | ||||
| -rw-r--r-- | arch/ia64/mm/discontig.c | 10 | ||||
| -rw-r--r-- | arch/parisc/mm/init.c | 2 | ||||
| -rw-r--r-- | arch/sparc/kernel/setup_32.c | 2 | ||||
| -rw-r--r-- | arch/sparc/mm/init_32.c | 2 | ||||
| -rw-r--r-- | arch/unicore32/mm/init.c | 2 | ||||
| -rw-r--r-- | drivers/net/ioc3-eth.c | 2 | ||||
| -rw-r--r-- | drivers/tty/serial/68328serial.c | 2 | ||||
| -rw-r--r-- | include/linux/mm.h | 6 | ||||
| -rw-r--r-- | lib/show_mem.c | 2 | ||||
| -rw-r--r-- | mm/nommu.c | 6 | ||||
| -rw-r--r-- | mm/page_alloc.c | 22 |
13 files changed, 34 insertions, 36 deletions
diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c index 76f82ae44efb..3f17ea146f0e 100644 --- a/arch/arm/mm/init.c +++ b/arch/arm/mm/init.c | |||
| @@ -85,7 +85,7 @@ void show_mem(unsigned int filter) | |||
| 85 | struct meminfo * mi = &meminfo; | 85 | struct meminfo * mi = &meminfo; |
| 86 | 86 | ||
| 87 | printk("Mem-info:\n"); | 87 | printk("Mem-info:\n"); |
| 88 | show_free_areas(); | 88 | show_free_areas(filter); |
| 89 | 89 | ||
| 90 | for_each_bank (i, mi) { | 90 | for_each_bank (i, mi) { |
| 91 | struct membank *bank = &mi->bank[i]; | 91 | struct membank *bank = &mi->bank[i]; |
diff --git a/arch/ia64/mm/contig.c b/arch/ia64/mm/contig.c index 9a018cde5d84..f114a3b14c6a 100644 --- a/arch/ia64/mm/contig.c +++ b/arch/ia64/mm/contig.c | |||
| @@ -44,13 +44,16 @@ void show_mem(unsigned int filter) | |||
| 44 | pg_data_t *pgdat; | 44 | pg_data_t *pgdat; |
| 45 | 45 | ||
| 46 | printk(KERN_INFO "Mem-info:\n"); | 46 | printk(KERN_INFO "Mem-info:\n"); |
| 47 | show_free_areas(); | 47 | show_free_areas(filter); |
| 48 | printk(KERN_INFO "Node memory in pages:\n"); | 48 | printk(KERN_INFO "Node memory in pages:\n"); |
| 49 | for_each_online_pgdat(pgdat) { | 49 | for_each_online_pgdat(pgdat) { |
| 50 | unsigned long present; | 50 | unsigned long present; |
| 51 | unsigned long flags; | 51 | unsigned long flags; |
| 52 | int shared = 0, cached = 0, reserved = 0; | 52 | int shared = 0, cached = 0, reserved = 0; |
| 53 | int nid = pgdat->node_id; | ||
| 53 | 54 | ||
| 55 | if (skip_free_areas_node(filter, nid)) | ||
| 56 | continue; | ||
| 54 | pgdat_resize_lock(pgdat, &flags); | 57 | pgdat_resize_lock(pgdat, &flags); |
| 55 | present = pgdat->node_present_pages; | 58 | present = pgdat->node_present_pages; |
| 56 | for(i = 0; i < pgdat->node_spanned_pages; i++) { | 59 | for(i = 0; i < pgdat->node_spanned_pages; i++) { |
| @@ -64,8 +67,7 @@ void show_mem(unsigned int filter) | |||
| 64 | if (max_gap < LARGE_GAP) | 67 | if (max_gap < LARGE_GAP) |
| 65 | continue; | 68 | continue; |
| 66 | #endif | 69 | #endif |
| 67 | i = vmemmap_find_next_valid_pfn(pgdat->node_id, | 70 | i = vmemmap_find_next_valid_pfn(nid, i) - 1; |
| 68 | i) - 1; | ||
| 69 | continue; | 71 | continue; |
| 70 | } | 72 | } |
| 71 | if (PageReserved(page)) | 73 | if (PageReserved(page)) |
| @@ -81,7 +83,7 @@ void show_mem(unsigned int filter) | |||
| 81 | total_cached += cached; | 83 | total_cached += cached; |
| 82 | total_shared += shared; | 84 | total_shared += shared; |
| 83 | printk(KERN_INFO "Node %4d: RAM: %11ld, rsvd: %8d, " | 85 | printk(KERN_INFO "Node %4d: RAM: %11ld, rsvd: %8d, " |
| 84 | "shrd: %10d, swpd: %10d\n", pgdat->node_id, | 86 | "shrd: %10d, swpd: %10d\n", nid, |
| 85 | present, reserved, shared, cached); | 87 | present, reserved, shared, cached); |
| 86 | } | 88 | } |
| 87 | printk(KERN_INFO "%ld pages of RAM\n", total_present); | 89 | printk(KERN_INFO "%ld pages of RAM\n", total_present); |
diff --git a/arch/ia64/mm/discontig.c b/arch/ia64/mm/discontig.c index 82ab1bc6afb1..c641333cd997 100644 --- a/arch/ia64/mm/discontig.c +++ b/arch/ia64/mm/discontig.c | |||
| @@ -622,13 +622,16 @@ void show_mem(unsigned int filter) | |||
| 622 | pg_data_t *pgdat; | 622 | pg_data_t *pgdat; |
| 623 | 623 | ||
| 624 | printk(KERN_INFO "Mem-info:\n"); | 624 | printk(KERN_INFO "Mem-info:\n"); |
| 625 | show_free_areas(); | 625 | show_free_areas(filter); |
| 626 | printk(KERN_INFO "Node memory in pages:\n"); | 626 | printk(KERN_INFO "Node memory in pages:\n"); |
| 627 | for_each_online_pgdat(pgdat) { | 627 | for_each_online_pgdat(pgdat) { |
| 628 | unsigned long present; | 628 | unsigned long present; |
| 629 | unsigned long flags; | 629 | unsigned long flags; |
| 630 | int shared = 0, cached = 0, reserved = 0; | 630 | int shared = 0, cached = 0, reserved = 0; |
| 631 | int nid = pgdat->node_id; | ||
| 631 | 632 | ||
| 633 | if (skip_free_areas_node(filter, nid)) | ||
| 634 | continue; | ||
| 632 | pgdat_resize_lock(pgdat, &flags); | 635 | pgdat_resize_lock(pgdat, &flags); |
| 633 | present = pgdat->node_present_pages; | 636 | present = pgdat->node_present_pages; |
| 634 | for(i = 0; i < pgdat->node_spanned_pages; i++) { | 637 | for(i = 0; i < pgdat->node_spanned_pages; i++) { |
| @@ -638,8 +641,7 @@ void show_mem(unsigned int filter) | |||
| 638 | if (pfn_valid(pgdat->node_start_pfn + i)) | 641 | if (pfn_valid(pgdat->node_start_pfn + i)) |
| 639 | page = pfn_to_page(pgdat->node_start_pfn + i); | 642 | page = pfn_to_page(pgdat->node_start_pfn + i); |
| 640 | else { | 643 | else { |
| 641 | i = vmemmap_find_next_valid_pfn(pgdat->node_id, | 644 | i = vmemmap_find_next_valid_pfn(nid, i) - 1; |
| 642 | i) - 1; | ||
| 643 | continue; | 645 | continue; |
| 644 | } | 646 | } |
| 645 | if (PageReserved(page)) | 647 | if (PageReserved(page)) |
| @@ -655,7 +657,7 @@ void show_mem(unsigned int filter) | |||
| 655 | total_cached += cached; | 657 | total_cached += cached; |
| 656 | total_shared += shared; | 658 | total_shared += shared; |
| 657 | printk(KERN_INFO "Node %4d: RAM: %11ld, rsvd: %8d, " | 659 | printk(KERN_INFO "Node %4d: RAM: %11ld, rsvd: %8d, " |
| 658 | "shrd: %10d, swpd: %10d\n", pgdat->node_id, | 660 | "shrd: %10d, swpd: %10d\n", nid, |
| 659 | present, reserved, shared, cached); | 661 | present, reserved, shared, cached); |
| 660 | } | 662 | } |
| 661 | printk(KERN_INFO "%ld pages of RAM\n", total_present); | 663 | printk(KERN_INFO "%ld pages of RAM\n", total_present); |
diff --git a/arch/parisc/mm/init.c b/arch/parisc/mm/init.c index 5fa1e273006e..c5c9c65e502d 100644 --- a/arch/parisc/mm/init.c +++ b/arch/parisc/mm/init.c | |||
| @@ -686,7 +686,7 @@ void show_mem(unsigned int filter) | |||
| 686 | int shared = 0, cached = 0; | 686 | int shared = 0, cached = 0; |
| 687 | 687 | ||
| 688 | printk(KERN_INFO "Mem-info:\n"); | 688 | printk(KERN_INFO "Mem-info:\n"); |
| 689 | show_free_areas(); | 689 | show_free_areas(filter); |
| 690 | #ifndef CONFIG_DISCONTIGMEM | 690 | #ifndef CONFIG_DISCONTIGMEM |
| 691 | i = max_mapnr; | 691 | i = max_mapnr; |
| 692 | while (i-- > 0) { | 692 | while (i-- > 0) { |
diff --git a/arch/sparc/kernel/setup_32.c b/arch/sparc/kernel/setup_32.c index 3609bdee9ed2..3249d3f3234d 100644 --- a/arch/sparc/kernel/setup_32.c +++ b/arch/sparc/kernel/setup_32.c | |||
| @@ -82,7 +82,7 @@ static void prom_sync_me(void) | |||
| 82 | "nop\n\t" : : "r" (&trapbase)); | 82 | "nop\n\t" : : "r" (&trapbase)); |
| 83 | 83 | ||
| 84 | prom_printf("PROM SYNC COMMAND...\n"); | 84 | prom_printf("PROM SYNC COMMAND...\n"); |
| 85 | show_free_areas(); | 85 | show_free_areas(0); |
| 86 | if(current->pid != 0) { | 86 | if(current->pid != 0) { |
| 87 | local_irq_enable(); | 87 | local_irq_enable(); |
| 88 | sys_sync(); | 88 | sys_sync(); |
diff --git a/arch/sparc/mm/init_32.c b/arch/sparc/mm/init_32.c index 4c31e2b6e71b..28c2cc81c9a9 100644 --- a/arch/sparc/mm/init_32.c +++ b/arch/sparc/mm/init_32.c | |||
| @@ -78,7 +78,7 @@ void __init kmap_init(void) | |||
| 78 | void show_mem(unsigned int filter) | 78 | void show_mem(unsigned int filter) |
| 79 | { | 79 | { |
| 80 | printk("Mem-info:\n"); | 80 | printk("Mem-info:\n"); |
| 81 | show_free_areas(); | 81 | show_free_areas(filter); |
| 82 | printk("Free swap: %6ldkB\n", | 82 | printk("Free swap: %6ldkB\n", |
| 83 | nr_swap_pages << (PAGE_SHIFT-10)); | 83 | nr_swap_pages << (PAGE_SHIFT-10)); |
| 84 | printk("%ld pages of RAM\n", totalram_pages); | 84 | printk("%ld pages of RAM\n", totalram_pages); |
diff --git a/arch/unicore32/mm/init.c b/arch/unicore32/mm/init.c index 1fc02633f700..2d3e7112d2a3 100644 --- a/arch/unicore32/mm/init.c +++ b/arch/unicore32/mm/init.c | |||
| @@ -62,7 +62,7 @@ void show_mem(unsigned int filter) | |||
| 62 | struct meminfo *mi = &meminfo; | 62 | struct meminfo *mi = &meminfo; |
| 63 | 63 | ||
| 64 | printk(KERN_DEFAULT "Mem-info:\n"); | 64 | printk(KERN_DEFAULT "Mem-info:\n"); |
| 65 | show_free_areas(); | 65 | show_free_areas(filter); |
| 66 | 66 | ||
| 67 | for_each_bank(i, mi) { | 67 | for_each_bank(i, mi) { |
| 68 | struct membank *bank = &mi->bank[i]; | 68 | struct membank *bank = &mi->bank[i]; |
diff --git a/drivers/net/ioc3-eth.c b/drivers/net/ioc3-eth.c index 96c95617195f..32f07f868d89 100644 --- a/drivers/net/ioc3-eth.c +++ b/drivers/net/ioc3-eth.c | |||
| @@ -915,7 +915,7 @@ static void ioc3_alloc_rings(struct net_device *dev) | |||
| 915 | 915 | ||
| 916 | skb = ioc3_alloc_skb(RX_BUF_ALLOC_SIZE, GFP_ATOMIC); | 916 | skb = ioc3_alloc_skb(RX_BUF_ALLOC_SIZE, GFP_ATOMIC); |
| 917 | if (!skb) { | 917 | if (!skb) { |
| 918 | show_free_areas(); | 918 | show_free_areas(0); |
| 919 | continue; | 919 | continue; |
| 920 | } | 920 | } |
| 921 | 921 | ||
diff --git a/drivers/tty/serial/68328serial.c b/drivers/tty/serial/68328serial.c index d5bfd41707e7..e0a77540b8ca 100644 --- a/drivers/tty/serial/68328serial.c +++ b/drivers/tty/serial/68328serial.c | |||
| @@ -281,7 +281,7 @@ static void receive_chars(struct m68k_serial *info, unsigned short rx) | |||
| 281 | #ifdef CONFIG_MAGIC_SYSRQ | 281 | #ifdef CONFIG_MAGIC_SYSRQ |
| 282 | } else if (ch == 0x10) { /* ^P */ | 282 | } else if (ch == 0x10) { /* ^P */ |
| 283 | show_state(); | 283 | show_state(); |
| 284 | show_free_areas(); | 284 | show_free_areas(0); |
| 285 | show_buffers(); | 285 | show_buffers(); |
| 286 | /* show_net_buffers(); */ | 286 | /* show_net_buffers(); */ |
| 287 | return; | 287 | return; |
diff --git a/include/linux/mm.h b/include/linux/mm.h index 6507dde38b16..1746f67c33de 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h | |||
| @@ -862,13 +862,13 @@ extern void pagefault_out_of_memory(void); | |||
| 862 | #define offset_in_page(p) ((unsigned long)(p) & ~PAGE_MASK) | 862 | #define offset_in_page(p) ((unsigned long)(p) & ~PAGE_MASK) |
| 863 | 863 | ||
| 864 | /* | 864 | /* |
| 865 | * Flags passed to show_mem() and __show_free_areas() to suppress output in | 865 | * Flags passed to show_mem() and show_free_areas() to suppress output in |
| 866 | * various contexts. | 866 | * various contexts. |
| 867 | */ | 867 | */ |
| 868 | #define SHOW_MEM_FILTER_NODES (0x0001u) /* filter disallowed nodes */ | 868 | #define SHOW_MEM_FILTER_NODES (0x0001u) /* filter disallowed nodes */ |
| 869 | 869 | ||
| 870 | extern void show_free_areas(void); | 870 | extern void show_free_areas(unsigned int flags); |
| 871 | extern void __show_free_areas(unsigned int flags); | 871 | extern bool skip_free_areas_node(unsigned int flags, int nid); |
| 872 | 872 | ||
| 873 | int shmem_lock(struct file *file, int lock, struct user_struct *user); | 873 | int shmem_lock(struct file *file, int lock, struct user_struct *user); |
| 874 | struct file *shmem_file_setup(const char *name, loff_t size, unsigned long flags); | 874 | struct file *shmem_file_setup(const char *name, loff_t size, unsigned long flags); |
diff --git a/lib/show_mem.c b/lib/show_mem.c index 90cbe4bb5960..4407f8c9b1f7 100644 --- a/lib/show_mem.c +++ b/lib/show_mem.c | |||
| @@ -16,7 +16,7 @@ void show_mem(unsigned int filter) | |||
| 16 | nonshared = 0, highmem = 0; | 16 | nonshared = 0, highmem = 0; |
| 17 | 17 | ||
| 18 | printk("Mem-Info:\n"); | 18 | printk("Mem-Info:\n"); |
| 19 | __show_free_areas(filter); | 19 | show_free_areas(filter); |
| 20 | 20 | ||
| 21 | for_each_online_pgdat(pgdat) { | 21 | for_each_online_pgdat(pgdat) { |
| 22 | unsigned long i, flags; | 22 | unsigned long i, flags; |
diff --git a/mm/nommu.c b/mm/nommu.c index c4c542c736a9..5afce48ce339 100644 --- a/mm/nommu.c +++ b/mm/nommu.c | |||
| @@ -1235,7 +1235,7 @@ error_free: | |||
| 1235 | enomem: | 1235 | enomem: |
| 1236 | printk("Allocation of length %lu from process %d (%s) failed\n", | 1236 | printk("Allocation of length %lu from process %d (%s) failed\n", |
| 1237 | len, current->pid, current->comm); | 1237 | len, current->pid, current->comm); |
| 1238 | show_free_areas(); | 1238 | show_free_areas(0); |
| 1239 | return -ENOMEM; | 1239 | return -ENOMEM; |
| 1240 | } | 1240 | } |
| 1241 | 1241 | ||
| @@ -1468,14 +1468,14 @@ error_getting_vma: | |||
| 1468 | printk(KERN_WARNING "Allocation of vma for %lu byte allocation" | 1468 | printk(KERN_WARNING "Allocation of vma for %lu byte allocation" |
| 1469 | " from process %d failed\n", | 1469 | " from process %d failed\n", |
| 1470 | len, current->pid); | 1470 | len, current->pid); |
| 1471 | show_free_areas(); | 1471 | show_free_areas(0); |
| 1472 | return -ENOMEM; | 1472 | return -ENOMEM; |
| 1473 | 1473 | ||
| 1474 | error_getting_region: | 1474 | error_getting_region: |
| 1475 | printk(KERN_WARNING "Allocation of vm region for %lu byte allocation" | 1475 | printk(KERN_WARNING "Allocation of vm region for %lu byte allocation" |
| 1476 | " from process %d failed\n", | 1476 | " from process %d failed\n", |
| 1477 | len, current->pid); | 1477 | len, current->pid); |
| 1478 | show_free_areas(); | 1478 | show_free_areas(0); |
| 1479 | return -ENOMEM; | 1479 | return -ENOMEM; |
| 1480 | } | 1480 | } |
| 1481 | EXPORT_SYMBOL(do_mmap_pgoff); | 1481 | EXPORT_SYMBOL(do_mmap_pgoff); |
diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 9d5498e2d0f5..b1447522d346 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c | |||
| @@ -2473,10 +2473,10 @@ void si_meminfo_node(struct sysinfo *val, int nid) | |||
| 2473 | #endif | 2473 | #endif |
| 2474 | 2474 | ||
| 2475 | /* | 2475 | /* |
| 2476 | * Determine whether the zone's node should be displayed or not, depending on | 2476 | * Determine whether the node should be displayed or not, depending on whether |
| 2477 | * whether SHOW_MEM_FILTER_NODES was passed to __show_free_areas(). | 2477 | * SHOW_MEM_FILTER_NODES was passed to show_free_areas(). |
| 2478 | */ | 2478 | */ |
| 2479 | static bool skip_free_areas_zone(unsigned int flags, const struct zone *zone) | 2479 | bool skip_free_areas_node(unsigned int flags, int nid) |
| 2480 | { | 2480 | { |
| 2481 | bool ret = false; | 2481 | bool ret = false; |
| 2482 | 2482 | ||
| @@ -2484,8 +2484,7 @@ static bool skip_free_areas_zone(unsigned int flags, const struct zone *zone) | |||
| 2484 | goto out; | 2484 | goto out; |
| 2485 | 2485 | ||
| 2486 | get_mems_allowed(); | 2486 | get_mems_allowed(); |
| 2487 | ret = !node_isset(zone->zone_pgdat->node_id, | 2487 | ret = !node_isset(nid, cpuset_current_mems_allowed); |
| 2488 | cpuset_current_mems_allowed); | ||
| 2489 | put_mems_allowed(); | 2488 | put_mems_allowed(); |
| 2490 | out: | 2489 | out: |
| 2491 | return ret; | 2490 | return ret; |
| @@ -2500,13 +2499,13 @@ out: | |||
| 2500 | * Suppresses nodes that are not allowed by current's cpuset if | 2499 | * Suppresses nodes that are not allowed by current's cpuset if |
| 2501 | * SHOW_MEM_FILTER_NODES is passed. | 2500 | * SHOW_MEM_FILTER_NODES is passed. |
| 2502 | */ | 2501 | */ |
| 2503 | void __show_free_areas(unsigned int filter) | 2502 | void show_free_areas(unsigned int filter) |
| 2504 | { | 2503 | { |
| 2505 | int cpu; | 2504 | int cpu; |
| 2506 | struct zone *zone; | 2505 | struct zone *zone; |
| 2507 | 2506 | ||
| 2508 | for_each_populated_zone(zone) { | 2507 | for_each_populated_zone(zone) { |
| 2509 | if (skip_free_areas_zone(filter, zone)) | 2508 | if (skip_free_areas_node(filter, zone_to_nid(zone))) |
| 2510 | continue; | 2509 | continue; |
| 2511 | show_node(zone); | 2510 | show_node(zone); |
| 2512 | printk("%s per-cpu:\n", zone->name); | 2511 | printk("%s per-cpu:\n", zone->name); |
| @@ -2549,7 +2548,7 @@ void __show_free_areas(unsigned int filter) | |||
| 2549 | for_each_populated_zone(zone) { | 2548 | for_each_populated_zone(zone) { |
| 2550 | int i; | 2549 | int i; |
| 2551 | 2550 | ||
| 2552 | if (skip_free_areas_zone(filter, zone)) | 2551 | if (skip_free_areas_node(filter, zone_to_nid(zone))) |
| 2553 | continue; | 2552 | continue; |
| 2554 | show_node(zone); | 2553 | show_node(zone); |
| 2555 | printk("%s" | 2554 | printk("%s" |
| @@ -2618,7 +2617,7 @@ void __show_free_areas(unsigned int filter) | |||
| 2618 | for_each_populated_zone(zone) { | 2617 | for_each_populated_zone(zone) { |
| 2619 | unsigned long nr[MAX_ORDER], flags, order, total = 0; | 2618 | unsigned long nr[MAX_ORDER], flags, order, total = 0; |
| 2620 | 2619 | ||
| 2621 | if (skip_free_areas_zone(filter, zone)) | 2620 | if (skip_free_areas_node(filter, zone_to_nid(zone))) |
| 2622 | continue; | 2621 | continue; |
| 2623 | show_node(zone); | 2622 | show_node(zone); |
| 2624 | printk("%s: ", zone->name); | 2623 | printk("%s: ", zone->name); |
| @@ -2639,11 +2638,6 @@ void __show_free_areas(unsigned int filter) | |||
| 2639 | show_swap_cache_info(); | 2638 | show_swap_cache_info(); |
| 2640 | } | 2639 | } |
| 2641 | 2640 | ||
| 2642 | void show_free_areas(void) | ||
| 2643 | { | ||
| 2644 | __show_free_areas(0); | ||
| 2645 | } | ||
| 2646 | |||
| 2647 | static void zoneref_set_zone(struct zone *zone, struct zoneref *zoneref) | 2641 | static void zoneref_set_zone(struct zone *zone, struct zoneref *zoneref) |
| 2648 | { | 2642 | { |
| 2649 | zoneref->zone = zone; | 2643 | zoneref->zone = zone; |
