Commit d7a887a7 authored by Ralf Baechle's avatar Ralf Baechle

MIPS: Delete unused function add_temporary_entry.

Only available for R4000 style TLBs anyway and proper ordering of
initialization code made this crude interface unncecessary.
Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent c539ef7d
...@@ -24,17 +24,6 @@ ...@@ -24,17 +24,6 @@
extern void add_wired_entry(unsigned long entrylo0, unsigned long entrylo1, extern void add_wired_entry(unsigned long entrylo0, unsigned long entrylo1,
unsigned long entryhi, unsigned long pagemask); unsigned long entryhi, unsigned long pagemask);
/*
* - add_temporary_entry() add a temporary TLB entry. We use TLB entries
* starting at the top and working down. This is for populating the
* TLB before trap_init() puts the TLB miss handler in place. It
* should be used only for entries matching the actual page tables,
* to prevent inconsistencies.
*/
extern int add_temporary_entry(unsigned long entrylo0, unsigned long entrylo1,
unsigned long entryhi, unsigned long pagemask);
/* Basically we have the same two-level (which is the logical three level /* Basically we have the same two-level (which is the logical three level
* Linux page table layout folded) page tables as the i386. Some day * Linux page table layout folded) page tables as the i386. Some day
* when we have proper page coloring support we can have a 1% quicker * when we have proper page coloring support we can have a 1% quicker
......
...@@ -376,51 +376,6 @@ void add_wired_entry(unsigned long entrylo0, unsigned long entrylo1, ...@@ -376,51 +376,6 @@ void add_wired_entry(unsigned long entrylo0, unsigned long entrylo1,
EXIT_CRITICAL(flags); EXIT_CRITICAL(flags);
} }
/*
* Used for loading TLB entries before trap_init() has started, when we
* don't actually want to add a wired entry which remains throughout the
* lifetime of the system
*/
static int temp_tlb_entry __cpuinitdata;
__init int add_temporary_entry(unsigned long entrylo0, unsigned long entrylo1,
unsigned long entryhi, unsigned long pagemask)
{
int ret = 0;
unsigned long flags;
unsigned long wired;
unsigned long old_pagemask;
unsigned long old_ctx;
ENTER_CRITICAL(flags);
/* Save old context and create impossible VPN2 value */
old_ctx = read_c0_entryhi();
old_pagemask = read_c0_pagemask();
wired = read_c0_wired();
if (--temp_tlb_entry < wired) {
printk(KERN_WARNING
"No TLB space left for add_temporary_entry\n");
ret = -ENOSPC;
goto out;
}
write_c0_index(temp_tlb_entry);
write_c0_pagemask(pagemask);
write_c0_entryhi(entryhi);
write_c0_entrylo0(entrylo0);
write_c0_entrylo1(entrylo1);
mtc0_tlbw_hazard();
tlb_write_indexed();
tlbw_use_hazard();
write_c0_entryhi(old_ctx);
write_c0_pagemask(old_pagemask);
out:
EXIT_CRITICAL(flags);
return ret;
}
static int __cpuinitdata ntlb; static int __cpuinitdata ntlb;
static int __init set_ntlb(char *str) static int __init set_ntlb(char *str)
{ {
...@@ -458,8 +413,6 @@ void __cpuinit tlb_init(void) ...@@ -458,8 +413,6 @@ void __cpuinit tlb_init(void)
write_c0_pagegrain(pg); write_c0_pagegrain(pg);
} }
temp_tlb_entry = current_cpu_data.tlbsize - 1;
/* From this point on the ARC firmware is dead. */ /* From this point on the ARC firmware is dead. */
local_flush_tlb_all(); local_flush_tlb_all();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment