tcm_init() call iotable_init() and it use early_alloc variants which
do memblock allocation. Directly using memblock allocation after
initializing bootmem should not permitted, because bootmem can't know
where are additinally reserved.
So move tcm_init() to a safe place before initalizing bootmem.
(On the U300)
Tested-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
#include <asm/virt.h>
#include "atags.h"
#include <asm/virt.h>
#include "atags.h"
#if defined(CONFIG_FPE_NWFPE) || defined(CONFIG_FPE_FASTFPE)
#if defined(CONFIG_FPE_NWFPE) || defined(CONFIG_FPE_FASTFPE)
#ifdef CONFIG_MULTI_IRQ_HANDLER
handle_arch_irq = mdesc->handle_irq;
#endif
#ifdef CONFIG_MULTI_IRQ_HANDLER
handle_arch_irq = mdesc->handle_irq;
#endif
#include <asm/mach/map.h>
#include <asm/memory.h>
#include <asm/system_info.h>
#include <asm/mach/map.h>
#include <asm/memory.h>
#include <asm/system_info.h>
static struct gen_pool *tcm_pool;
static bool dtcm_present;
static struct gen_pool *tcm_pool;
static bool dtcm_present;
#include <asm/mach/pci.h>
#include "mm.h"
#include <asm/mach/pci.h>
#include "mm.h"
/*
* empty_zero_page is a special page that is used for
/*
* empty_zero_page is a special page that is used for
dma_contiguous_remap();
devicemaps_init(mdesc);
kmap_init();
dma_contiguous_remap();
devicemaps_init(mdesc);
kmap_init();
top_pmd = pmd_off_k(0xffff0000);
top_pmd = pmd_off_k(0xffff0000);