MIPS: mm: Fix broken microMIPS kernel regression.
Commit f4ae17aa0f
[MIPS: mm: Use scratch for
PGD when !CONFIG_MIPS_PGD_C0_CONTEXT] broke microMIPS kernel builds. This
patch refactors that code similar to what was done for the 'clear_page'
and 'copy_page' functions.
Signed-off-by: Steven J. Hill <Steven.Hill@imgtec.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/6744/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
committed by
Ralf Baechle
parent
f2d0801f00
commit
7bb3940940
@@ -16,8 +16,10 @@
|
|||||||
|
|
||||||
#define FASTPATH_SIZE 128
|
#define FASTPATH_SIZE 128
|
||||||
|
|
||||||
|
EXPORT(tlbmiss_handler_setup_pgd_start)
|
||||||
LEAF(tlbmiss_handler_setup_pgd)
|
LEAF(tlbmiss_handler_setup_pgd)
|
||||||
.space 16 * 4
|
1: j 1b /* Dummy, will be replaced. */
|
||||||
|
.space 64
|
||||||
END(tlbmiss_handler_setup_pgd)
|
END(tlbmiss_handler_setup_pgd)
|
||||||
EXPORT(tlbmiss_handler_setup_pgd_end)
|
EXPORT(tlbmiss_handler_setup_pgd_end)
|
||||||
|
|
||||||
|
@@ -1422,16 +1422,17 @@ static void build_r4000_tlb_refill_handler(void)
|
|||||||
extern u32 handle_tlbl[], handle_tlbl_end[];
|
extern u32 handle_tlbl[], handle_tlbl_end[];
|
||||||
extern u32 handle_tlbs[], handle_tlbs_end[];
|
extern u32 handle_tlbs[], handle_tlbs_end[];
|
||||||
extern u32 handle_tlbm[], handle_tlbm_end[];
|
extern u32 handle_tlbm[], handle_tlbm_end[];
|
||||||
extern u32 tlbmiss_handler_setup_pgd[], tlbmiss_handler_setup_pgd_end[];
|
extern u32 tlbmiss_handler_setup_pgd_start[], tlbmiss_handler_setup_pgd[];
|
||||||
|
extern u32 tlbmiss_handler_setup_pgd_end[];
|
||||||
|
|
||||||
static void build_setup_pgd(void)
|
static void build_setup_pgd(void)
|
||||||
{
|
{
|
||||||
const int a0 = 4;
|
const int a0 = 4;
|
||||||
const int __maybe_unused a1 = 5;
|
const int __maybe_unused a1 = 5;
|
||||||
const int __maybe_unused a2 = 6;
|
const int __maybe_unused a2 = 6;
|
||||||
u32 *p = tlbmiss_handler_setup_pgd;
|
u32 *p = tlbmiss_handler_setup_pgd_start;
|
||||||
const int tlbmiss_handler_setup_pgd_size =
|
const int tlbmiss_handler_setup_pgd_size =
|
||||||
tlbmiss_handler_setup_pgd_end - tlbmiss_handler_setup_pgd;
|
tlbmiss_handler_setup_pgd_end - tlbmiss_handler_setup_pgd_start;
|
||||||
#ifndef CONFIG_MIPS_PGD_C0_CONTEXT
|
#ifndef CONFIG_MIPS_PGD_C0_CONTEXT
|
||||||
long pgdc = (long)pgd_current;
|
long pgdc = (long)pgd_current;
|
||||||
#endif
|
#endif
|
||||||
|
Reference in New Issue
Block a user