Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 375132
b: refs/heads/master
c: 8759934
h: refs/heads/master
v: v3
  • Loading branch information
Huacai Chen authored and Ralf Baechle committed May 7, 2013
1 parent b2bad1f commit ae8faec
Show file tree
Hide file tree
Showing 5 changed files with 23 additions and 3 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 59b435d1ad48ac244058845e18586eb5719f7f99
refs/heads/master: 8759934e2b6bdb3a08a81fc14a6588f3321719b1
3 changes: 3 additions & 0 deletions trunk/arch/mips/include/asm/cpu-features.h
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,9 @@
#ifndef cpu_has_pindexed_dcache
#define cpu_has_pindexed_dcache (cpu_data[0].dcache.flags & MIPS_CACHE_PINDEX)
#endif
#ifndef cpu_has_local_ebase
#define cpu_has_local_ebase 1
#endif

/*
* I-Cache snoops remote store. This only matters on SMP. Some multiprocessors
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,5 +57,6 @@
#define cpu_has_vint 0
#define cpu_has_vtag_icache 0
#define cpu_has_watch 1
#define cpu_has_local_ebase 0

#endif /* __ASM_MACH_LOONGSON_CPU_FEATURE_OVERRIDES_H */
10 changes: 10 additions & 0 deletions trunk/arch/mips/mm/page.c
Original file line number Diff line number Diff line change
Expand Up @@ -247,6 +247,11 @@ void __cpuinit build_clear_page(void)
struct uasm_label *l = labels;
struct uasm_reloc *r = relocs;
int i;
static atomic_t run_once = ATOMIC_INIT(0);

if (atomic_xchg(&run_once, 1)) {
return;
}

memset(labels, 0, sizeof(labels));
memset(relocs, 0, sizeof(relocs));
Expand Down Expand Up @@ -389,6 +394,11 @@ void __cpuinit build_copy_page(void)
struct uasm_label *l = labels;
struct uasm_reloc *r = relocs;
int i;
static atomic_t run_once = ATOMIC_INIT(0);

if (atomic_xchg(&run_once, 1)) {
return;
}

memset(labels, 0, sizeof(labels));
memset(relocs, 0, sizeof(relocs));
Expand Down
10 changes: 8 additions & 2 deletions trunk/arch/mips/mm/tlbex.c
Original file line number Diff line number Diff line change
Expand Up @@ -2162,8 +2162,11 @@ void __cpuinit build_tlb_refill_handler(void)
case CPU_TX3922:
case CPU_TX3927:
#ifndef CONFIG_MIPS_PGD_C0_CONTEXT
build_r3000_tlb_refill_handler();
if (cpu_has_local_ebase)
build_r3000_tlb_refill_handler();
if (!run_once) {
if (!cpu_has_local_ebase)
build_r3000_tlb_refill_handler();
build_r3000_tlb_load_handler();
build_r3000_tlb_store_handler();
build_r3000_tlb_modify_handler();
Expand Down Expand Up @@ -2192,9 +2195,12 @@ void __cpuinit build_tlb_refill_handler(void)
build_r4000_tlb_load_handler();
build_r4000_tlb_store_handler();
build_r4000_tlb_modify_handler();
if (!cpu_has_local_ebase)
build_r4000_tlb_refill_handler();
run_once++;
}
build_r4000_tlb_refill_handler();
if (cpu_has_local_ebase)
build_r4000_tlb_refill_handler();
}
}

Expand Down

0 comments on commit ae8faec

Please sign in to comment.