diff options
Diffstat (limited to 'mm/page_alloc.c')
-rw-r--r-- | mm/page_alloc.c | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 4b5c4ff68f18..eb2027892ef9 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c | |||
@@ -16,6 +16,7 @@ | |||
16 | 16 | ||
17 | #include <linux/stddef.h> | 17 | #include <linux/stddef.h> |
18 | #include <linux/mm.h> | 18 | #include <linux/mm.h> |
19 | #include <linux/highmem.h> | ||
19 | #include <linux/swap.h> | 20 | #include <linux/swap.h> |
20 | #include <linux/interrupt.h> | 21 | #include <linux/interrupt.h> |
21 | #include <linux/pagemap.h> | 22 | #include <linux/pagemap.h> |
@@ -124,7 +125,8 @@ EXPORT_SYMBOL(node_states); | |||
124 | /* Protect totalram_pages and zone->managed_pages */ | 125 | /* Protect totalram_pages and zone->managed_pages */ |
125 | static DEFINE_SPINLOCK(managed_page_count_lock); | 126 | static DEFINE_SPINLOCK(managed_page_count_lock); |
126 | 127 | ||
127 | unsigned long totalram_pages __read_mostly; | 128 | atomic_long_t _totalram_pages __read_mostly; |
129 | EXPORT_SYMBOL(_totalram_pages); | ||
128 | unsigned long totalreserve_pages __read_mostly; | 130 | unsigned long totalreserve_pages __read_mostly; |
129 | unsigned long totalcma_pages __read_mostly; | 131 | unsigned long totalcma_pages __read_mostly; |
130 | 132 | ||
@@ -4747,11 +4749,11 @@ EXPORT_SYMBOL_GPL(si_mem_available); | |||
4747 | 4749 | ||
4748 | void si_meminfo(struct sysinfo *val) | 4750 | void si_meminfo(struct sysinfo *val) |
4749 | { | 4751 | { |
4750 | val->totalram = totalram_pages; | 4752 | val->totalram = totalram_pages(); |
4751 | val->sharedram = global_node_page_state(NR_SHMEM); | 4753 | val->sharedram = global_node_page_state(NR_SHMEM); |
4752 | val->freeram = global_zone_page_state(NR_FREE_PAGES); | 4754 | val->freeram = global_zone_page_state(NR_FREE_PAGES); |
4753 | val->bufferram = nr_blockdev_pages(); | 4755 | val->bufferram = nr_blockdev_pages(); |
4754 | val->totalhigh = totalhigh_pages; | 4756 | val->totalhigh = totalhigh_pages(); |
4755 | val->freehigh = nr_free_highpages(); | 4757 | val->freehigh = nr_free_highpages(); |
4756 | val->mem_unit = PAGE_SIZE; | 4758 | val->mem_unit = PAGE_SIZE; |
4757 | } | 4759 | } |
@@ -7077,10 +7079,10 @@ void adjust_managed_page_count(struct page *page, long count) | |||
7077 | { | 7079 | { |
7078 | spin_lock(&managed_page_count_lock); | 7080 | spin_lock(&managed_page_count_lock); |
7079 | atomic_long_add(count, &page_zone(page)->managed_pages); | 7081 | atomic_long_add(count, &page_zone(page)->managed_pages); |
7080 | totalram_pages += count; | 7082 | totalram_pages_add(count); |
7081 | #ifdef CONFIG_HIGHMEM | 7083 | #ifdef CONFIG_HIGHMEM |
7082 | if (PageHighMem(page)) | 7084 | if (PageHighMem(page)) |
7083 | totalhigh_pages += count; | 7085 | totalhigh_pages_add(count); |
7084 | #endif | 7086 | #endif |
7085 | spin_unlock(&managed_page_count_lock); | 7087 | spin_unlock(&managed_page_count_lock); |
7086 | } | 7088 | } |
@@ -7123,9 +7125,9 @@ EXPORT_SYMBOL(free_reserved_area); | |||
7123 | void free_highmem_page(struct page *page) | 7125 | void free_highmem_page(struct page *page) |
7124 | { | 7126 | { |
7125 | __free_reserved_page(page); | 7127 | __free_reserved_page(page); |
7126 | totalram_pages++; | 7128 | totalram_pages_inc(); |
7127 | atomic_long_inc(&page_zone(page)->managed_pages); | 7129 | atomic_long_inc(&page_zone(page)->managed_pages); |
7128 | totalhigh_pages++; | 7130 | totalhigh_pages_inc(); |
7129 | } | 7131 | } |
7130 | #endif | 7132 | #endif |
7131 | 7133 | ||
@@ -7174,10 +7176,10 @@ void __init mem_init_print_info(const char *str) | |||
7174 | physpages << (PAGE_SHIFT - 10), | 7176 | physpages << (PAGE_SHIFT - 10), |
7175 | codesize >> 10, datasize >> 10, rosize >> 10, | 7177 | codesize >> 10, datasize >> 10, rosize >> 10, |
7176 | (init_data_size + init_code_size) >> 10, bss_size >> 10, | 7178 | (init_data_size + init_code_size) >> 10, bss_size >> 10, |
7177 | (physpages - totalram_pages - totalcma_pages) << (PAGE_SHIFT - 10), | 7179 | (physpages - totalram_pages() - totalcma_pages) << (PAGE_SHIFT - 10), |
7178 | totalcma_pages << (PAGE_SHIFT - 10), | 7180 | totalcma_pages << (PAGE_SHIFT - 10), |
7179 | #ifdef CONFIG_HIGHMEM | 7181 | #ifdef CONFIG_HIGHMEM |
7180 | totalhigh_pages << (PAGE_SHIFT - 10), | 7182 | totalhigh_pages() << (PAGE_SHIFT - 10), |
7181 | #endif | 7183 | #endif |
7182 | str ? ", " : "", str ? str : ""); | 7184 | str ? ", " : "", str ? str : ""); |
7183 | } | 7185 | } |