powerpc: Fix swiotlb to respect the boot option
powerpc initializes swiotlb before parsing the kernel boot options so swiotlb options (e.g. specifying the swiotlb buffer size) are ignored. Any time before freeing bootmem works for swiotlb so this patch moves powerpc's swiotlb initialization after parsing the kernel boot options, mem_init (as x86 does). Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Tested-by: Becky Bruce <beckyb@kernel.crashing.org> Tested-by: Albert Herranz <albert_herranz@yahoo.es> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
Родитель
09156a7a40
Коммит
a93272969c
|
@ -39,7 +39,6 @@
|
|||
#include <asm/serial.h>
|
||||
#include <asm/udbg.h>
|
||||
#include <asm/mmu_context.h>
|
||||
#include <asm/swiotlb.h>
|
||||
|
||||
#include "setup.h"
|
||||
|
||||
|
@ -343,11 +342,6 @@ void __init setup_arch(char **cmdline_p)
|
|||
ppc_md.setup_arch();
|
||||
if ( ppc_md.progress ) ppc_md.progress("arch: exit", 0x3eab);
|
||||
|
||||
#ifdef CONFIG_SWIOTLB
|
||||
if (ppc_swiotlb_enable)
|
||||
swiotlb_init(1);
|
||||
#endif
|
||||
|
||||
paging_init();
|
||||
|
||||
/* Initialize the MMU context management stuff */
|
||||
|
|
|
@ -61,7 +61,6 @@
|
|||
#include <asm/xmon.h>
|
||||
#include <asm/udbg.h>
|
||||
#include <asm/kexec.h>
|
||||
#include <asm/swiotlb.h>
|
||||
#include <asm/mmu_context.h>
|
||||
|
||||
#include "setup.h"
|
||||
|
@ -541,11 +540,6 @@ void __init setup_arch(char **cmdline_p)
|
|||
if (ppc_md.setup_arch)
|
||||
ppc_md.setup_arch();
|
||||
|
||||
#ifdef CONFIG_SWIOTLB
|
||||
if (ppc_swiotlb_enable)
|
||||
swiotlb_init(1);
|
||||
#endif
|
||||
|
||||
paging_init();
|
||||
|
||||
/* Initialize the MMU context management stuff */
|
||||
|
|
|
@ -48,6 +48,7 @@
|
|||
#include <asm/sparsemem.h>
|
||||
#include <asm/vdso.h>
|
||||
#include <asm/fixmap.h>
|
||||
#include <asm/swiotlb.h>
|
||||
|
||||
#include "mmu_decl.h"
|
||||
|
||||
|
@ -320,6 +321,11 @@ void __init mem_init(void)
|
|||
struct page *page;
|
||||
unsigned long reservedpages = 0, codesize, initsize, datasize, bsssize;
|
||||
|
||||
#ifdef CONFIG_SWIOTLB
|
||||
if (ppc_swiotlb_enable)
|
||||
swiotlb_init(1);
|
||||
#endif
|
||||
|
||||
num_physpages = lmb.memory.size >> PAGE_SHIFT;
|
||||
high_memory = (void *) __va(max_low_pfn * PAGE_SIZE);
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче