Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 164766
b: refs/heads/master
c: 9492587
h: refs/heads/master
v: v3
  • Loading branch information
KAMEZAWA Hiroyuki authored and Linus Torvalds committed Sep 23, 2009
1 parent 49a7dcf commit 3bf079c
Show file tree
Hide file tree
Showing 6 changed files with 29 additions and 7 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: a0614da88b67ffa3dbcc0d40b817e682c7c4a0ee
refs/heads/master: 9492587cf35d370db33ef4b38375dfb35a105b61
4 changes: 4 additions & 0 deletions trunk/arch/ia64/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -500,6 +500,10 @@ config HAVE_ARCH_NODEDATA_EXTENSION
def_bool y
depends on NUMA

config ARCH_PROC_KCORE_TEXT
def_bool y
depends on PROC_KCORE

config IA32_SUPPORT
bool "Support for Linux/x86 binaries"
help
Expand Down
3 changes: 1 addition & 2 deletions trunk/arch/ia64/mm/init.c
Original file line number Diff line number Diff line change
Expand Up @@ -617,7 +617,7 @@ mem_init (void)
long reserved_pages, codesize, datasize, initsize;
pg_data_t *pgdat;
int i;
static struct kcore_list kcore_mem, kcore_kernel;
static struct kcore_list kcore_mem;

BUG_ON(PTRS_PER_PGD * sizeof(pgd_t) != PAGE_SIZE);
BUG_ON(PTRS_PER_PMD * sizeof(pmd_t) != PAGE_SIZE);
Expand All @@ -640,7 +640,6 @@ mem_init (void)
high_memory = __va(max_low_pfn * PAGE_SIZE);

kclist_add(&kcore_mem, __va(0), max_low_pfn * PAGE_SIZE, KCORE_RAM);
kclist_add(&kcore_kernel, _stext, _end - _stext, KCORE_TEXT);

for_each_online_pgdat(pgdat)
if (pgdat->bdata->node_bootmem_map)
Expand Down
4 changes: 4 additions & 0 deletions trunk/arch/x86/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -1204,6 +1204,10 @@ config ARCH_DISCONTIGMEM_DEFAULT
def_bool y
depends on NUMA && X86_32

config ARCH_PROC_KCORE_TEXT
def_bool y
depends on X86_64 && PROC_KCORE

config ARCH_SPARSEMEM_DEFAULT
def_bool y
depends on X86_64
Expand Down
4 changes: 1 addition & 3 deletions trunk/arch/x86/mm/init_64.c
Original file line number Diff line number Diff line change
Expand Up @@ -647,8 +647,7 @@ EXPORT_SYMBOL_GPL(memory_add_physaddr_to_nid);

#endif /* CONFIG_MEMORY_HOTPLUG */

static struct kcore_list kcore_mem, kcore_kernel,
kcore_modules, kcore_vsyscall;
static struct kcore_list kcore_mem, kcore_modules, kcore_vsyscall;

void __init mem_init(void)
{
Expand Down Expand Up @@ -678,7 +677,6 @@ void __init mem_init(void)

/* Register memory areas for /proc/kcore */
kclist_add(&kcore_mem, __va(0), max_low_pfn << PAGE_SHIFT, KCORE_RAM);
kclist_add(&kcore_kernel, &_stext, _end - _stext, KCORE_TEXT);
kclist_add(&kcore_modules, (void *)MODULES_VADDR, MODULES_LEN,
KCORE_OTHER);
kclist_add(&kcore_vsyscall, (void *)VSYSCALL_START,
Expand Down
19 changes: 18 additions & 1 deletion trunk/fs/proc/kcore.c
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
#include <asm/uaccess.h>
#include <asm/io.h>
#include <linux/list.h>
#include <asm/sections.h>

#define CORE_STR "CORE"

Expand Down Expand Up @@ -374,10 +375,26 @@ read_kcore(struct file *file, char __user *buffer, size_t buflen, loff_t *fpos)

static struct kcore_list kcore_vmalloc;

#ifdef CONFIG_ARCH_PROC_KCORE_TEXT
static struct kcore_list kcore_text;
/*
* If defined, special segment is used for mapping kernel text instead of
* direct-map area. We need to create special TEXT section.
*/
static void __init proc_kcore_text_init(void)
{
kclist_add(&kcore_text, _stext, _end - _stext, KCORE_TEXT);
}
#else
static void __init proc_kcore_text_init(void)
{
}
#endif

static int __init proc_kcore_init(void)
{
proc_root_kcore = proc_create("kcore", S_IRUSR, NULL, &proc_kcore_operations);

proc_kcore_text_init();
kclist_add(&kcore_vmalloc, (void *)VMALLOC_START,
VMALLOC_END - VMALLOC_START, KCORE_VMALLOC);
return 0;
Expand Down

0 comments on commit 3bf079c

Please sign in to comment.