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 <[EMAIL PROTECTED]>
> ---
>
> 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

_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev

Reply via email to