Messages in this thread | | | Date | Tue, 19 Oct 2010 20:21:32 +0100 | From | Russell King - ARM Linux <> | Subject | Re: [PATCH] ARM: allow, but warn, when issuing ioremap() on RAM |
| |
On Tue, Oct 19, 2010 at 01:13:36AM -0700, Colin Cross wrote: > On Mon, Oct 11, 2010 at 8:25 AM, Russell King - ARM Linux > <linux@arm.linux.org.uk> wrote: > > On Sun, Oct 10, 2010 at 04:52:36AM +0300, Felipe Contreras wrote: > > Here's a different approach which will work. This pushes ARM further > > towards using memblock for everything relating to memory init (although > > we still have the old membank stuff around.) > > > > The advantage with this is that memblock is now used as the basis for > > determining where memory is, setting up the maps, freeing memory into > > the pools, etc. > > > > What this also means is that this code in the ->reserve callback: > > > > size = min(size, SZ_2M); > > base = memblock_alloc(size, min(align, SZ_2M)); > > memblock_free(base, size); > > memblock_remove(base, size); > > > > will result in [base+size] being removed from the available memory, > > using highmem if available, if not from lowmem and removing it from > > the lowmem memory map - which is exactly the behaviour we want. > > > > arch/arm/mm/init.c | 160 +++++++++++++++++++++++++++++++++++----------------- > > arch/arm/mm/mmu.c | 43 ++++++++------ > > mm/memblock.c | 4 + > > 3 files changed, 138 insertions(+), 69 deletions(-) > > If memblock_remove is used on the end of memory with this patch, > mem_init accesses off the end of the array of page structures because > of the discrepancy between memblock.memory and membank on the number > of the last pfn. memblock.memory is used to determine the memory > zones in arm_bootmem_free, which eventually is used to create the > array of page structures, but mem_init iterates over membank and calls > pfn_to_page on pfns up to bank_pfn_end.
BTW, reverting the change to find_limits() should resolve this problem. Please confirm. -- 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/
| |