diff options
author | KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> | 2009-09-22 19:45:44 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-09-23 10:39:41 -0400 |
commit | a0614da88b67ffa3dbcc0d40b817e682c7c4a0ee (patch) | |
tree | ae4ca3a8553592af41f7c2cc1a64912d934f6baf | |
parent | c30bb2a25fcfde6157e6154a32c14686fb0bedbe (diff) |
kcore: register vmalloc area in generic way
For /proc/kcore, vmalloc areas are registered per arch. But, all of them
registers same range of [VMALLOC_START...VMALLOC_END) This patch unifies
them. By this. archs which have no kclist_add() hooks can see vmalloc
area correctly.
Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: WANG Cong <xiyou.wangcong@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | arch/ia64/mm/init.c | 4 | ||||
-rw-r--r-- | arch/mips/mm/init.c | 4 | ||||
-rw-r--r-- | arch/powerpc/mm/init_32.c | 4 | ||||
-rw-r--r-- | arch/powerpc/mm/init_64.c | 4 | ||||
-rw-r--r-- | arch/sh/mm/init.c | 4 | ||||
-rw-r--r-- | arch/x86/mm/init_32.c | 4 | ||||
-rw-r--r-- | arch/x86/mm/init_64.c | 4 | ||||
-rw-r--r-- | fs/proc/kcore.c | 5 |
8 files changed, 10 insertions, 23 deletions
diff --git a/arch/ia64/mm/init.c b/arch/ia64/mm/init.c index f6a3c21a2826..286b98aa8547 100644 --- a/arch/ia64/mm/init.c +++ b/arch/ia64/mm/init.c | |||
@@ -617,7 +617,7 @@ mem_init (void) | |||
617 | long reserved_pages, codesize, datasize, initsize; | 617 | long reserved_pages, codesize, datasize, initsize; |
618 | pg_data_t *pgdat; | 618 | pg_data_t *pgdat; |
619 | int i; | 619 | int i; |
620 | static struct kcore_list kcore_mem, kcore_vmem, kcore_kernel; | 620 | static struct kcore_list kcore_mem, kcore_kernel; |
621 | 621 | ||
622 | BUG_ON(PTRS_PER_PGD * sizeof(pgd_t) != PAGE_SIZE); | 622 | BUG_ON(PTRS_PER_PGD * sizeof(pgd_t) != PAGE_SIZE); |
623 | BUG_ON(PTRS_PER_PMD * sizeof(pmd_t) != PAGE_SIZE); | 623 | BUG_ON(PTRS_PER_PMD * sizeof(pmd_t) != PAGE_SIZE); |
@@ -640,8 +640,6 @@ mem_init (void) | |||
640 | high_memory = __va(max_low_pfn * PAGE_SIZE); | 640 | high_memory = __va(max_low_pfn * PAGE_SIZE); |
641 | 641 | ||
642 | kclist_add(&kcore_mem, __va(0), max_low_pfn * PAGE_SIZE, KCORE_RAM); | 642 | kclist_add(&kcore_mem, __va(0), max_low_pfn * PAGE_SIZE, KCORE_RAM); |
643 | kclist_add(&kcore_vmem, (void *)VMALLOC_START, | ||
644 | VMALLOC_END-VMALLOC_START, KCORE_VMALLOC); | ||
645 | kclist_add(&kcore_kernel, _stext, _end - _stext, KCORE_TEXT); | 643 | kclist_add(&kcore_kernel, _stext, _end - _stext, KCORE_TEXT); |
646 | 644 | ||
647 | for_each_online_pgdat(pgdat) | 645 | for_each_online_pgdat(pgdat) |
diff --git a/arch/mips/mm/init.c b/arch/mips/mm/init.c index f8661985bff6..4a83da499e2d 100644 --- a/arch/mips/mm/init.c +++ b/arch/mips/mm/init.c | |||
@@ -352,7 +352,7 @@ void __init paging_init(void) | |||
352 | free_area_init_nodes(max_zone_pfns); | 352 | free_area_init_nodes(max_zone_pfns); |
353 | } | 353 | } |
354 | 354 | ||
355 | static struct kcore_list kcore_mem, kcore_vmalloc; | 355 | static struct kcore_list kcore_mem; |
356 | #ifdef CONFIG_64BIT | 356 | #ifdef CONFIG_64BIT |
357 | static struct kcore_list kcore_kseg0; | 357 | static struct kcore_list kcore_kseg0; |
358 | #endif | 358 | #endif |
@@ -413,8 +413,6 @@ void __init mem_init(void) | |||
413 | 0x80000000 - 4, KCORE_TEXT); | 413 | 0x80000000 - 4, KCORE_TEXT); |
414 | #endif | 414 | #endif |
415 | kclist_add(&kcore_mem, __va(0), max_low_pfn << PAGE_SHIFT, KCORE_RAM); | 415 | kclist_add(&kcore_mem, __va(0), max_low_pfn << PAGE_SHIFT, KCORE_RAM); |
416 | kclist_add(&kcore_vmalloc, (void *)VMALLOC_START, | ||
417 | VMALLOC_END-VMALLOC_START, KCORE_VMALLOC); | ||
418 | 416 | ||
419 | printk(KERN_INFO "Memory: %luk/%luk available (%ldk kernel code, " | 417 | printk(KERN_INFO "Memory: %luk/%luk available (%ldk kernel code, " |
420 | "%ldk reserved, %ldk data, %ldk init, %ldk highmem)\n", | 418 | "%ldk reserved, %ldk data, %ldk init, %ldk highmem)\n", |
diff --git a/arch/powerpc/mm/init_32.c b/arch/powerpc/mm/init_32.c index e91add90ec54..38a450d16b27 100644 --- a/arch/powerpc/mm/init_32.c +++ b/arch/powerpc/mm/init_32.c | |||
@@ -243,7 +243,6 @@ void free_initrd_mem(unsigned long start, unsigned long end) | |||
243 | #endif | 243 | #endif |
244 | 244 | ||
245 | #ifdef CONFIG_PROC_KCORE | 245 | #ifdef CONFIG_PROC_KCORE |
246 | static struct kcore_list kcore_vmem; | ||
247 | 246 | ||
248 | static int __init setup_kcore(void) | 247 | static int __init setup_kcore(void) |
249 | { | 248 | { |
@@ -271,9 +270,6 @@ static int __init setup_kcore(void) | |||
271 | kclist_add(kcore_mem, __va(base), size, KCORE_RAM); | 270 | kclist_add(kcore_mem, __va(base), size, KCORE_RAM); |
272 | } | 271 | } |
273 | 272 | ||
274 | kclist_add(&kcore_vmem, (void *)VMALLOC_START, | ||
275 | VMALLOC_END-VMALLOC_START, KCORE_VMALLOC); | ||
276 | |||
277 | return 0; | 273 | return 0; |
278 | } | 274 | } |
279 | module_init(setup_kcore); | 275 | module_init(setup_kcore); |
diff --git a/arch/powerpc/mm/init_64.c b/arch/powerpc/mm/init_64.c index 9ee563101b56..87ef492a1a5d 100644 --- a/arch/powerpc/mm/init_64.c +++ b/arch/powerpc/mm/init_64.c | |||
@@ -110,7 +110,6 @@ void free_initrd_mem(unsigned long start, unsigned long end) | |||
110 | #endif | 110 | #endif |
111 | 111 | ||
112 | #ifdef CONFIG_PROC_KCORE | 112 | #ifdef CONFIG_PROC_KCORE |
113 | static struct kcore_list kcore_vmem; | ||
114 | 113 | ||
115 | static int __init setup_kcore(void) | 114 | static int __init setup_kcore(void) |
116 | { | 115 | { |
@@ -131,9 +130,6 @@ static int __init setup_kcore(void) | |||
131 | kclist_add(kcore_mem, __va(base), size, KCORE_RAM); | 130 | kclist_add(kcore_mem, __va(base), size, KCORE_RAM); |
132 | } | 131 | } |
133 | 132 | ||
134 | kclist_add(&kcore_vmem, (void *)VMALLOC_START, | ||
135 | VMALLOC_END-VMALLOC_START, KCORE_VMALLOC); | ||
136 | |||
137 | return 0; | 133 | return 0; |
138 | } | 134 | } |
139 | module_init(setup_kcore); | 135 | module_init(setup_kcore); |
diff --git a/arch/sh/mm/init.c b/arch/sh/mm/init.c index ef56c9f9d7ba..bf8bd026db55 100644 --- a/arch/sh/mm/init.c +++ b/arch/sh/mm/init.c | |||
@@ -186,7 +186,7 @@ void __init paging_init(void) | |||
186 | set_fixmap_nocache(FIX_UNCACHED, __pa(&__uncached_start)); | 186 | set_fixmap_nocache(FIX_UNCACHED, __pa(&__uncached_start)); |
187 | } | 187 | } |
188 | 188 | ||
189 | static struct kcore_list kcore_mem, kcore_vmalloc; | 189 | static struct kcore_list kcore_mem; |
190 | 190 | ||
191 | void __init mem_init(void) | 191 | void __init mem_init(void) |
192 | { | 192 | { |
@@ -227,8 +227,6 @@ void __init mem_init(void) | |||
227 | initsize = (unsigned long) &__init_end - (unsigned long) &__init_begin; | 227 | initsize = (unsigned long) &__init_end - (unsigned long) &__init_begin; |
228 | 228 | ||
229 | kclist_add(&kcore_mem, __va(0), max_low_pfn << PAGE_SHIFT, KCORE_RAM); | 229 | kclist_add(&kcore_mem, __va(0), max_low_pfn << PAGE_SHIFT, KCORE_RAM); |
230 | kclist_add(&kcore_vmalloc, (void *)VMALLOC_START, | ||
231 | VMALLOC_END - VMALLOC_START, KCORE_VMALLOC); | ||
232 | 230 | ||
233 | printk(KERN_INFO "Memory: %luk/%luk available (%dk kernel code, " | 231 | printk(KERN_INFO "Memory: %luk/%luk available (%dk kernel code, " |
234 | "%dk data, %dk init)\n", | 232 | "%dk data, %dk init)\n", |
diff --git a/arch/x86/mm/init_32.c b/arch/x86/mm/init_32.c index 2cbc40112932..7108678ca9bc 100644 --- a/arch/x86/mm/init_32.c +++ b/arch/x86/mm/init_32.c | |||
@@ -857,7 +857,7 @@ static void __init test_wp_bit(void) | |||
857 | } | 857 | } |
858 | } | 858 | } |
859 | 859 | ||
860 | static struct kcore_list kcore_mem, kcore_vmalloc; | 860 | static struct kcore_list kcore_mem; |
861 | 861 | ||
862 | void __init mem_init(void) | 862 | void __init mem_init(void) |
863 | { | 863 | { |
@@ -887,8 +887,6 @@ void __init mem_init(void) | |||
887 | initsize = (unsigned long) &__init_end - (unsigned long) &__init_begin; | 887 | initsize = (unsigned long) &__init_end - (unsigned long) &__init_begin; |
888 | 888 | ||
889 | kclist_add(&kcore_mem, __va(0), max_low_pfn << PAGE_SHIFT, KCORE_RAM); | 889 | kclist_add(&kcore_mem, __va(0), max_low_pfn << PAGE_SHIFT, KCORE_RAM); |
890 | kclist_add(&kcore_vmalloc, (void *)VMALLOC_START, | ||
891 | VMALLOC_END-VMALLOC_START, KCORE_VMALLOC); | ||
892 | 890 | ||
893 | printk(KERN_INFO "Memory: %luk/%luk available (%dk kernel code, " | 891 | printk(KERN_INFO "Memory: %luk/%luk available (%dk kernel code, " |
894 | "%dk reserved, %dk data, %dk init, %ldk highmem)\n", | 892 | "%dk reserved, %dk data, %dk init, %ldk highmem)\n", |
diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c index c05810b614fe..da2cae7427a6 100644 --- a/arch/x86/mm/init_64.c +++ b/arch/x86/mm/init_64.c | |||
@@ -647,7 +647,7 @@ EXPORT_SYMBOL_GPL(memory_add_physaddr_to_nid); | |||
647 | 647 | ||
648 | #endif /* CONFIG_MEMORY_HOTPLUG */ | 648 | #endif /* CONFIG_MEMORY_HOTPLUG */ |
649 | 649 | ||
650 | static struct kcore_list kcore_mem, kcore_vmalloc, kcore_kernel, | 650 | static struct kcore_list kcore_mem, kcore_kernel, |
651 | kcore_modules, kcore_vsyscall; | 651 | kcore_modules, kcore_vsyscall; |
652 | 652 | ||
653 | void __init mem_init(void) | 653 | void __init mem_init(void) |
@@ -678,8 +678,6 @@ void __init mem_init(void) | |||
678 | 678 | ||
679 | /* Register memory areas for /proc/kcore */ | 679 | /* Register memory areas for /proc/kcore */ |
680 | kclist_add(&kcore_mem, __va(0), max_low_pfn << PAGE_SHIFT, KCORE_RAM); | 680 | kclist_add(&kcore_mem, __va(0), max_low_pfn << PAGE_SHIFT, KCORE_RAM); |
681 | kclist_add(&kcore_vmalloc, (void *)VMALLOC_START, | ||
682 | VMALLOC_END-VMALLOC_START, KCORE_VMALLOC); | ||
683 | kclist_add(&kcore_kernel, &_stext, _end - _stext, KCORE_TEXT); | 681 | kclist_add(&kcore_kernel, &_stext, _end - _stext, KCORE_TEXT); |
684 | kclist_add(&kcore_modules, (void *)MODULES_VADDR, MODULES_LEN, | 682 | kclist_add(&kcore_modules, (void *)MODULES_VADDR, MODULES_LEN, |
685 | KCORE_OTHER); | 683 | KCORE_OTHER); |
diff --git a/fs/proc/kcore.c b/fs/proc/kcore.c index 659c1635db81..e10d360110bd 100644 --- a/fs/proc/kcore.c +++ b/fs/proc/kcore.c | |||
@@ -372,9 +372,14 @@ read_kcore(struct file *file, char __user *buffer, size_t buflen, loff_t *fpos) | |||
372 | return acc; | 372 | return acc; |
373 | } | 373 | } |
374 | 374 | ||
375 | static struct kcore_list kcore_vmalloc; | ||
376 | |||
375 | static int __init proc_kcore_init(void) | 377 | static int __init proc_kcore_init(void) |
376 | { | 378 | { |
377 | proc_root_kcore = proc_create("kcore", S_IRUSR, NULL, &proc_kcore_operations); | 379 | proc_root_kcore = proc_create("kcore", S_IRUSR, NULL, &proc_kcore_operations); |
380 | |||
381 | kclist_add(&kcore_vmalloc, (void *)VMALLOC_START, | ||
382 | VMALLOC_END - VMALLOC_START, KCORE_VMALLOC); | ||
378 | return 0; | 383 | return 0; |
379 | } | 384 | } |
380 | module_init(proc_kcore_init); | 385 | module_init(proc_kcore_init); |