powerpc mm init_32 gdb regions
A message that is not in the archive (sent off-list or not yet received): [email protected]
PATCH v2 1/1 powerpc mm init_32 gdb regions
Add memory regions to the kcore list for 32-bit machines.
The entries are only 32-bit, so restrict the virtual address to stay below 0xffff_ffff. With KERNELBASE set to 0xc000_0000, this in effect restricts access to the first 1GB of real memory.
Make setup_kcore conditional on CONFIG_PROC_KCORE for both 32/64.
Signed-off-by Ed Swarthout <[email protected]>
---
arch/powerpc/mm/init_32.c | 37 +++++++++++++++++++++++++++++++++++++ arch/powerpc/mm/init_64.c | 2 ++ 2 files changed, 39 insertions(+), 0 deletions(-)
arch/powerpc/mm/init_32.c +37 -0
@@ -255,3 +255,40 @@ void free_initrd_mem(unsigned long start, unsigned long end) } }#endif + +#ifdef CONFIG_PROC_KCORE +static struct kcore_list kcore_vmem; + +static int __init setup_kcore (void ) +{ +int i; + +for (i =0 ; i < lmb.memory.cnt; i++) { +unsigned long base; +unsigned long size; +struct kcore_list *kcore_mem; + + base = lmb.memory.region[i].base; + size = lmb.memory.region[i].size; + + kcore_mem =kmalloc (sizeof (struct kcore_list ),GFP_ATOMIC ); +if (!kcore_mem) +panic ("%s: kmalloc failed\n" , __FUNCTION__); + +/* must stay under 32 bits */ +if (0xfffffffful - (unsigned long )__va (base) < size) { + size =0xfffffffful - (unsigned long )(__va (base)); +printk (KERN_DEBUG "setup_kcore: restrict size=%lx\n" , + size); + } + +kclist_add (kcore_mem,__va (base), size); + } + +kclist_add (&kcore_vmem, (void *)VMALLOC_START , +VMALLOC_END -VMALLOC_START ); + +return 0 ; +} +module_init (setup_kcore); +#endif
arch/powerpc/mm/init_64.c +2 -0
@@ -113,6 +113,7 @@ void free_initrd_mem(unsigned long start, unsigned long end) }#endif +#ifdef CONFIG_PROC_KCORE static struct kcore_list kcore_vmem;static int __init setup_kcore (void )
@@ -139,6 +140,7 @@ static int __init setup_kcore(void) return 0; }module_init (setup_kcore); +#endif static void zero_ctor (void *addr,struct kmem_cache *cache,unsigned long flags) {
Signature · 1 line
1.5.3.1.65.g47184