Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a9327296 authored by FUJITA Tomonori's avatar FUJITA Tomonori Committed by Benjamin Herrenschmidt
Browse files

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: default avatarFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Tested-by: default avatarBecky Bruce <beckyb@kernel.crashing.org>
Tested-by: default avatarAlbert Herranz <albert_herranz@yahoo.es>
Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
parent 09156a7a
Loading
Loading
Loading
Loading
+0 −6
Original line number Diff line number Diff line
@@ -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 */
+0 −6
Original line number Diff line number Diff line
@@ -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 */
+6 −0
Original line number Diff line number Diff line
@@ -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);