Skip to content

Commit a67beca

Browse files
chleroympe
authored andcommitted
powerpc/32: make KVIRT_TOP dependent on FIXMAP_START
When we add KASAN shadow area, KVIRT_TOP can't be anymore fixed at 0xfe000000. This patch uses FIXADDR_START to define KVIRT_TOP. Signed-off-by: Christophe Leroy <[email protected]> Signed-off-by: Michael Ellerman <[email protected]>
1 parent 7934cea commit a67beca

File tree

2 files changed

+20
-6
lines changed

2 files changed

+20
-6
lines changed

arch/powerpc/include/asm/book3s/32/pgtable.h

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -134,15 +134,24 @@ static inline bool pte_user(pte_t pte)
134134
#define PGDIR_MASK (~(PGDIR_SIZE-1))
135135

136136
#define USER_PTRS_PER_PGD (TASK_SIZE / PGDIR_SIZE)
137+
138+
#ifndef __ASSEMBLY__
139+
140+
int map_kernel_page(unsigned long va, phys_addr_t pa, pgprot_t prot);
141+
142+
#endif /* !__ASSEMBLY__ */
143+
137144
/*
138145
* This is the bottom of the PKMAP area with HIGHMEM or an arbitrary
139146
* value (for now) on others, from where we can start layout kernel
140147
* virtual space that goes below PKMAP and FIXMAP
141148
*/
149+
#include <asm/fixmap.h>
150+
142151
#ifdef CONFIG_HIGHMEM
143152
#define KVIRT_TOP PKMAP_BASE
144153
#else
145-
#define KVIRT_TOP (0xfe000000UL) /* for now, could be FIXMAP_BASE ? */
154+
#define KVIRT_TOP FIXADDR_START
146155
#endif
147156

148157
/*
@@ -373,8 +382,6 @@ static inline void __ptep_set_access_flags(struct vm_area_struct *vma,
373382
#define __pte_to_swp_entry(pte) ((swp_entry_t) { pte_val(pte) >> 3 })
374383
#define __swp_entry_to_pte(x) ((pte_t) { (x).val << 3 })
375384

376-
int map_kernel_page(unsigned long va, phys_addr_t pa, pgprot_t prot);
377-
378385
/* Generic accessors to PTE bits */
379386
static inline int pte_write(pte_t pte) { return !!(pte_val(pte) & _PAGE_RW);}
380387
static inline int pte_read(pte_t pte) { return 1; }

arch/powerpc/include/asm/nohash/32/pgtable.h

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,15 +64,24 @@ extern int icache_44x_need_flush;
6464
#define pgd_ERROR(e) \
6565
pr_err("%s:%d: bad pgd %08lx.\n", __FILE__, __LINE__, pgd_val(e))
6666

67+
#ifndef __ASSEMBLY__
68+
69+
int map_kernel_page(unsigned long va, phys_addr_t pa, pgprot_t prot);
70+
71+
#endif /* !__ASSEMBLY__ */
72+
73+
6774
/*
6875
* This is the bottom of the PKMAP area with HIGHMEM or an arbitrary
6976
* value (for now) on others, from where we can start layout kernel
7077
* virtual space that goes below PKMAP and FIXMAP
7178
*/
79+
#include <asm/fixmap.h>
80+
7281
#ifdef CONFIG_HIGHMEM
7382
#define KVIRT_TOP PKMAP_BASE
7483
#else
75-
#define KVIRT_TOP (0xfe000000UL) /* for now, could be FIXMAP_BASE ? */
84+
#define KVIRT_TOP FIXADDR_START
7685
#endif
7786

7887
/*
@@ -379,8 +388,6 @@ static inline int pte_young(pte_t pte)
379388
#define __pte_to_swp_entry(pte) ((swp_entry_t) { pte_val(pte) >> 3 })
380389
#define __swp_entry_to_pte(x) ((pte_t) { (x).val << 3 })
381390

382-
int map_kernel_page(unsigned long va, phys_addr_t pa, pgprot_t prot);
383-
384391
#endif /* !__ASSEMBLY__ */
385392

386393
#endif /* __ASM_POWERPC_NOHASH_32_PGTABLE_H */

0 commit comments

Comments
 (0)