[SPARC64]: Add infrastructure for dynamic TSB sizing.

This also cleans up tsb_context_switch().  The assembler
routine is now __tsb_context_switch() and the former is
an inline function that picks out the bits from the mm_struct
and passes it into the assembler code as arguments.

setup_tsb_parms() computes the locked TLB entry to map the
TSB.  Later when we support using the physical address quad
load instructions of Cheetah+ and later, we'll simply use
the physical address for the TSB register value and set
the map virtual and PTE both to zero.

Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
David S. Miller
2006-01-31 18:31:20 -08:00
committed by David S. Miller
parent 09f94287f7
commit 98c5584cfc
7 changed files with 142 additions and 58 deletions

View File

@@ -441,8 +441,7 @@ void flush_thread(void)
mm = t->task->mm;
if (mm)
tsb_context_switch(__pa(mm->pgd),
mm->context.sparc64_tsb);
tsb_context_switch(mm);
set_thread_wsaved(0);