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:
parent
edfe1a5679
commit
7cd9b317b6
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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__ */
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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 *
|
||||||
|
|
|
@ -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)
|
||||||
|
|
Loading…
Reference in New Issue