[PATCH] Fix /proc/kcore for i386

From: Andi Kleen (ak@suse.de)
Date: Tue Jun 17 2003 - 08:58:55 EST


The recent IA64 changes for /proc/kcore broke the access on i386.
Currently no notes are written for the direct mapped or vmalloced
memory, which makes gdb reject it.

This patch fixes it. Other ports probably need to do the same changes.

There is still another problem in /proc/kcore for which I am submitting a
separate patch.

-Andi

diff -u linux-2.5.72-work/arch/i386/mm/init.c-o linux-2.5.72-work/arch/i386/mm/init.c
--- linux-2.5.72-work/arch/i386/mm/init.c-o 2003-05-27 03:00:45.000000000 +0200
+++ linux-2.5.72-work/arch/i386/mm/init.c 2003-06-17 15:55:03.000000000 +0200
@@ -27,6 +27,7 @@
 #include <linux/pagemap.h>
 #include <linux/bootmem.h>
 #include <linux/slab.h>
+#include <linux/proc_fs.h>
 
 #include <asm/processor.h>
 #include <asm/system.h>
@@ -425,6 +426,8 @@
 extern void set_max_mapnr_init(void);
 #endif /* !CONFIG_DISCONTIGMEM */
 
+static struct kcore_list kcore_mem, kcore_vmalloc;
+
 void __init mem_init(void)
 {
         extern int ppro_with_ram_bug(void);
@@ -477,6 +480,10 @@
         datasize = (unsigned long) &_edata - (unsigned long) &_etext;
         initsize = (unsigned long) &__init_end - (unsigned long) &__init_begin;
 
+ kclist_add(&kcore_mem, __va(0), max_low_pfn << PAGE_SHIFT);
+ kclist_add(&kcore_vmalloc, (void *)VMALLOC_START,
+ VMALLOC_END-VMALLOC_START);
+
         printk(KERN_INFO "Memory: %luk/%luk available (%dk kernel code, %dk reserved, %dk data, %dk init, %ldk highmem)\n",
                 (unsigned long) nr_free_pages() << (PAGE_SHIFT-10),
                 num_physpages << (PAGE_SHIFT-10),

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Mon Jun 23 2003 - 22:00:21 EST