powerpc/mm: make ioremap_bot common to all

Drop multiple definitions of ioremap_bot and make one common to
all subarches.

Only CONFIG_PPC_BOOK3E_64 had a global static init value for
ioremap_bot. Now ioremap_bot is set in early_init_mmu_global().

Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/920eebfd9f36f14c79d1755847f5bf7c83703bdd.1566309262.git.christophe.leroy@c-s.fr
This commit is contained in:
Christophe Leroy 2019-08-20 14:07:16 +00:00 committed by Michael Ellerman
parent edfe1a5679
commit 7cd9b317b6
9 changed files with 7 additions and 12 deletions

View File

@ -201,8 +201,6 @@ int map_kernel_page(unsigned long va, phys_addr_t pa, pgprot_t prot);
#include <linux/sched.h> #include <linux/sched.h>
#include <linux/threads.h> #include <linux/threads.h>
extern unsigned long ioremap_bot;
/* Bits to mask out from a PGD to get to the PUD page */ /* Bits to mask out from a PGD to get to the PUD page */
#define PGD_MASKED_BITS 0 #define PGD_MASKED_BITS 0

View File

@ -289,7 +289,6 @@ extern unsigned long __kernel_io_end;
#define KERN_IO_END __kernel_io_end #define KERN_IO_END __kernel_io_end
extern struct page *vmemmap; extern struct page *vmemmap;
extern unsigned long ioremap_bot;
extern unsigned long pci_io_base; extern unsigned long pci_io_base;
#endif /* __ASSEMBLY__ */ #endif /* __ASSEMBLY__ */

View File

@ -11,8 +11,6 @@
#include <asm/mmu.h> /* For sub-arch specific PPC_PIN_SIZE */ #include <asm/mmu.h> /* For sub-arch specific PPC_PIN_SIZE */
#include <asm/asm-405.h> #include <asm/asm-405.h>
extern unsigned long ioremap_bot;
#ifdef CONFIG_44x #ifdef CONFIG_44x
extern int icache_44x_need_flush; extern int icache_44x_need_flush;
#endif #endif

View File

@ -68,6 +68,8 @@ extern pgd_t swapper_pg_dir[];
extern void paging_init(void); extern void paging_init(void);
extern unsigned long ioremap_bot;
/* /*
* kern_addr_valid is intended to indicate whether an address is a valid * kern_addr_valid is intended to indicate whether an address is a valid
* kernel address. Most 32-bit archs define it as always true (like this) * kernel address. Most 32-bit archs define it as always true (like this)

View File

@ -3,6 +3,9 @@
#include <linux/io.h> #include <linux/io.h>
#include <asm/io-workarounds.h> #include <asm/io-workarounds.h>
unsigned long ioremap_bot;
EXPORT_SYMBOL(ioremap_bot);
void __iomem *ioremap(phys_addr_t addr, unsigned long size) void __iomem *ioremap(phys_addr_t addr, unsigned long size)
{ {
pgprot_t prot = pgprot_noncached(PAGE_KERNEL); pgprot_t prot = pgprot_noncached(PAGE_KERNEL);

View File

@ -106,7 +106,6 @@ extern u8 early_hash[];
#endif /* CONFIG_PPC32 */ #endif /* CONFIG_PPC32 */
extern unsigned long ioremap_bot;
extern unsigned long __max_low_memory; extern unsigned long __max_low_memory;
extern phys_addr_t __initial_memory_limit_addr; extern phys_addr_t __initial_memory_limit_addr;
extern phys_addr_t total_memory; extern phys_addr_t total_memory;

View File

@ -703,6 +703,8 @@ static void __init early_init_mmu_global(void)
* for use by the TLB miss code * for use by the TLB miss code
*/ */
linear_map_top = memblock_end_of_DRAM(); linear_map_top = memblock_end_of_DRAM();
ioremap_bot = IOREMAP_BASE;
} }
static void __init early_mmu_set_memory_limit(void) static void __init early_mmu_set_memory_limit(void)

View File

@ -33,9 +33,6 @@
#include <mm/mmu_decl.h> #include <mm/mmu_decl.h>
unsigned long ioremap_bot;
EXPORT_SYMBOL(ioremap_bot); /* aka VMALLOC_END */
extern char etext[], _stext[], _sinittext[], _einittext[]; extern char etext[], _stext[], _sinittext[], _einittext[];
void __iomem * void __iomem *

View File

@ -98,9 +98,6 @@ unsigned long __pte_frag_nr;
EXPORT_SYMBOL(__pte_frag_nr); EXPORT_SYMBOL(__pte_frag_nr);
unsigned long __pte_frag_size_shift; unsigned long __pte_frag_size_shift;
EXPORT_SYMBOL(__pte_frag_size_shift); EXPORT_SYMBOL(__pte_frag_size_shift);
unsigned long ioremap_bot;
#else /* !CONFIG_PPC_BOOK3S_64 */
unsigned long ioremap_bot = IOREMAP_BASE;
#endif #endif
int __weak ioremap_range(unsigned long ea, phys_addr_t pa, unsigned long size, pgprot_t prot, int nid) int __weak ioremap_range(unsigned long ea, phys_addr_t pa, unsigned long size, pgprot_t prot, int nid)