linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] powerpc mm init_32 gdb regions
@ 2007-09-19  5:09 Ed Swarthout
  2007-09-19 20:31 ` Kumar Gala
  0 siblings, 1 reply; 2+ messages in thread
From: Ed Swarthout @ 2007-09-19  5:09 UTC (permalink / raw)
  To: galak, linuxppc-dev; +Cc: Ed Swarthout

Add memory regions to the kcore list for 32-bit machines.
Since the entries are only 32-bit, keep under 4G.

Signed-off-by: Ed Swarthout <Ed.Swarthout@freescale.com>
---

Adapted from init_64.c

 arch/powerpc/mm/init_32.c |   34 ++++++++++++++++++++++++++++++++++
 1 files changed, 34 insertions(+), 0 deletions(-)

diff --git a/arch/powerpc/mm/init_32.c b/arch/powerpc/mm/init_32.c
index d65995a..d804c65 100644
--- a/arch/powerpc/mm/init_32.c
+++ b/arch/powerpc/mm/init_32.c
@@ -255,3 +255,37 @@ void free_initrd_mem(unsigned long start, unsigned long end)
 	}
 }
 #endif
+
+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, 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);
-- 
1.5.3.rc6.63.gf7c18

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] powerpc mm init_32 gdb regions
  2007-09-19  5:09 [PATCH] powerpc mm init_32 gdb regions Ed Swarthout
@ 2007-09-19 20:31 ` Kumar Gala
  0 siblings, 0 replies; 2+ messages in thread
From: Kumar Gala @ 2007-09-19 20:31 UTC (permalink / raw)
  To: Ed Swarthout; +Cc: linuxppc-dev


On Sep 19, 2007, at 12:09 AM, Ed Swarthout wrote:

> Add memory regions to the kcore list for 32-bit machines.
> Since the entries are only 32-bit, keep under 4G.
>
> Signed-off-by: Ed Swarthout <Ed.Swarthout@freescale.com>
> ---
>
> Adapted from init_64.c
>
>  arch/powerpc/mm/init_32.c |   34 ++++++++++++++++++++++++++++++++++
>  1 files changed, 34 insertions(+), 0 deletions(-)
>
> diff --git a/arch/powerpc/mm/init_32.c b/arch/powerpc/mm/init_32.c
> index d65995a..d804c65 100644
> --- a/arch/powerpc/mm/init_32.c
> +++ b/arch/powerpc/mm/init_32.c
> @@ -255,3 +255,37 @@ void free_initrd_mem(unsigned long start,  
> unsigned long end)
>  	}
>  }
>  #endif
> +

should this be #ifdef CONFIG_PROC_KCORE protected?

> +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, 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);
> -- 
> 1.5.3.rc6.63.gf7c18

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2007-09-19 20:28 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-09-19  5:09 [PATCH] powerpc mm init_32 gdb regions Ed Swarthout
2007-09-19 20:31 ` Kumar Gala

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).