diff options
| author | David S. Miller <davem@davemloft.net> | 2006-01-31 21:33:00 -0500 |
|---|---|---|
| committer | David S. Miller <davem@sunset.davemloft.net> | 2006-03-20 04:11:22 -0500 |
| commit | 4da808c352c290d3f762933d44d4ab90c2fd65f3 (patch) | |
| tree | da99326440777580a19c345a5b0d52fbf800042b /arch/sparc64/lib | |
| parent | 4753eb2ac7022b999e5e484f1a5dc001dba22bd3 (diff) | |
[SPARC64]: Fix bogus flush instruction usage.
Some of the trap code was still assuming that alternate
global %g6 was hard coded with current_thread_info().
Let's just consistently flush at KERNBASE when we need
a pipeline synchronization. That's locked into the TLB
and will always work.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc64/lib')
| -rw-r--r-- | arch/sparc64/lib/clear_page.S | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/sparc64/lib/clear_page.S b/arch/sparc64/lib/clear_page.S index b59884ef051d..cdc634bceba0 100644 --- a/arch/sparc64/lib/clear_page.S +++ b/arch/sparc64/lib/clear_page.S | |||
| @@ -9,6 +9,7 @@ | |||
| 9 | #include <asm/page.h> | 9 | #include <asm/page.h> |
| 10 | #include <asm/pgtable.h> | 10 | #include <asm/pgtable.h> |
| 11 | #include <asm/spitfire.h> | 11 | #include <asm/spitfire.h> |
| 12 | #include <asm/head.h> | ||
| 12 | 13 | ||
| 13 | /* What we used to do was lock a TLB entry into a specific | 14 | /* What we used to do was lock a TLB entry into a specific |
| 14 | * TLB slot, clear the page with interrupts disabled, then | 15 | * TLB slot, clear the page with interrupts disabled, then |
| @@ -66,7 +67,8 @@ clear_user_page: /* %o0=dest, %o1=vaddr */ | |||
| 66 | wrpr %o4, PSTATE_IE, %pstate | 67 | wrpr %o4, PSTATE_IE, %pstate |
| 67 | stxa %o0, [%g3] ASI_DMMU | 68 | stxa %o0, [%g3] ASI_DMMU |
| 68 | stxa %g1, [%g0] ASI_DTLB_DATA_IN | 69 | stxa %g1, [%g0] ASI_DTLB_DATA_IN |
| 69 | flush %g6 | 70 | sethi %hi(KERNBASE), %g1 |
| 71 | flush %g1 | ||
| 70 | wrpr %o4, 0x0, %pstate | 72 | wrpr %o4, 0x0, %pstate |
| 71 | 73 | ||
| 72 | mov 1, %o4 | 74 | mov 1, %o4 |
