diff options
author | Tony Lindgren <tony@atomide.com> | 2011-11-23 14:46:10 -0800 |
---|---|---|
committer | Tony Lindgren <tony@atomide.com> | 2011-11-23 14:46:10 -0800 |
commit | 52f3a41e0aca5625fbd118ed57a4debb25817e99 (patch) | |
tree | 86730c862fc97eef5f1eb1a81bf74bf2a8a36754 /arch/powerpc/mm/mem.c | |
parent | e9b7086b80c4d9e354f4edc9e280ae85a60df408 (diff) | |
parent | 8770b07c2dff3cec2c751b289ee690137c88ea54 (diff) |
Merge branch 'fixes-v3.2-rc2' into fixes
Diffstat (limited to 'arch/powerpc/mm/mem.c')
-rw-r--r-- | arch/powerpc/mm/mem.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c index 16da595ff40..2dd6bdd31fe 100644 --- a/arch/powerpc/mm/mem.c +++ b/arch/powerpc/mm/mem.c @@ -34,6 +34,7 @@ #include <linux/suspend.h> #include <linux/memblock.h> #include <linux/hugetlb.h> +#include <linux/slab.h> #include <asm/pgalloc.h> #include <asm/prom.h> @@ -555,3 +556,32 @@ void update_mmu_cache(struct vm_area_struct *vma, unsigned long address, book3e_hugetlb_preload(vma->vm_mm, address, *ptep); #endif } + +/* + * System memory should not be in /proc/iomem but various tools expect it + * (eg kdump). + */ +static int add_system_ram_resources(void) +{ + struct memblock_region *reg; + + for_each_memblock(memory, reg) { + struct resource *res; + unsigned long base = reg->base; + unsigned long size = reg->size; + + res = kzalloc(sizeof(struct resource), GFP_KERNEL); + WARN_ON(!res); + + if (res) { + res->name = "System RAM"; + res->start = base; + res->end = base + size - 1; + res->flags = IORESOURCE_MEM; + WARN_ON(request_resource(&iomem_resource, res) < 0); + } + } + + return 0; +} +subsys_initcall(add_system_ram_resources); |