summaryrefslogtreecommitdiffstats
path: root/arch/mips/kernel/head.S
diff options
context:
space:
mode:
Diffstat (limited to 'arch/mips/kernel/head.S')
-rw-r--r--arch/mips/kernel/head.S36
1 files changed, 11 insertions, 25 deletions
diff --git a/arch/mips/kernel/head.S b/arch/mips/kernel/head.S
index 7429a42bf..ed8140ba2 100644
--- a/arch/mips/kernel/head.S
+++ b/arch/mips/kernel/head.S
@@ -1,4 +1,4 @@
-/* $Id: head.S,v 1.15 1999/10/07 07:34:24 raiko Exp $
+/* $Id: head.S,v 1.16 1999/10/09 00:00:58 ralf Exp $
*
* arch/mips/kernel/head.S
*
@@ -54,10 +54,8 @@
LEAF(except_vec0_r4000)
.set mips3
mfc0 k0, CP0_BADVADDR # Get faulting address
- _GET_CURRENT(k1) # get current task ptr
srl k0, k0, 22 # get pgd only bits
- lw k1, TASK_MM(k1) # get task pg_dir
- lw k1, MM_PGD(k1) # get pgd pointer
+ lw k1, current_pgd # get pgd pointer
sll k0, k0, 2
addu k1, k1, k0 # add in pgd offset
mfc0 k0, CP0_CONTEXT # get context reg
@@ -82,10 +80,8 @@
LEAF(except_vec0_r4600)
.set mips3
mfc0 k0, CP0_BADVADDR
- _GET_CURRENT(k1) # get current task ptr
srl k0, k0, 22
- lw k1, TASK_MM(k1)
- lw k1, MM_PGD(k1) # get pgd pointer
+ lw k1, current_pgd # get pgd pointer
sll k0, k0, 2
addu k1, k1, k0
mfc0 k0, CP0_CONTEXT
@@ -111,10 +107,8 @@
LEAF(except_vec0_nevada)
.set mips3
mfc0 k0, CP0_BADVADDR # Get faulting address
- _GET_CURRENT(k1) # get current task ptr
srl k0, k0, 22 # get pgd only bits
- lw k1, TASK_MM(k1) # get task pg_dir
- lw k1, MM_PGD(k1) # get pgd pointer
+ lw k1, current_pgd # get pgd pointer
sll k0, k0, 2
addu k1, k1, k0 # add in pgd offset
lw k1, (k1)
@@ -138,10 +132,8 @@
LEAF(except_vec0_r45k_bvahwbug)
.set mips3
mfc0 k0, CP0_BADVADDR
- _GET_CURRENT(k1) # get current task ptr
srl k0, k0, 22
- lw k1, TASK_MM(k1)
- lw k1, MM_PGD(k1) # get pgd pointer
+ lw k1, current_pgd # get pgd pointer
sll k0, k0, 2
addu k1, k1, k0
mfc0 k0, CP0_CONTEXT
@@ -170,10 +162,8 @@
LEAF(except_vec0_r4k_mphwbug)
.set mips3
mfc0 k0, CP0_BADVADDR
- _GET_CURRENT(k1) # get current task ptr
srl k0, k0, 22
- lw k1, TASK_MM(k1)
- lw k1, MM_PGD(k1) # get pgd pointer
+ lw k1, current_pgd # get pgd pointer
sll k0, k0, 2
addu k1, k1, k0
mfc0 k0, CP0_CONTEXT
@@ -202,10 +192,8 @@
LEAF(except_vec0_r4k_250MHZhwbug)
.set mips3
mfc0 k0, CP0_BADVADDR
- _GET_CURRENT(k1) # get current task ptr
srl k0, k0, 22
- lw k1, TASK_MM(k1)
- lw k1, MM_PGD(k1) # get pgd pointer
+ lw k1, current_pgd # get pgd pointer
sll k0, k0, 2
addu k1, k1, k0
mfc0 k0, CP0_CONTEXT
@@ -233,10 +221,8 @@
LEAF(except_vec0_r4k_MP250MHZhwbug)
.set mips3
mfc0 k0, CP0_BADVADDR
- _GET_CURRENT(k1) # get current task ptr
srl k0, k0, 22
- lw k1, TASK_MM(k1)
- lw k1, MM_PGD(k1) # get pgd pointer
+ lw k1, current_pgd # get pgd pointer
sll k0, k0, 2
addu k1, k1, k0
mfc0 k0, CP0_CONTEXT
@@ -268,10 +254,8 @@
.set noat
.set mips1
mfc0 k0, CP0_BADVADDR
- _GET_CURRENT(k1) # get current task ptr
- lw k1, TASK_MM(k1)
+ lw k1, current_pgd # get pgd pointer
srl k0, k0, 22
- lw k1, MM_PGD(k1) # get pgd pointer
sll k0, k0, 2
addu k1, k1, k0
mfc0 k0, CP0_CONTEXT
@@ -606,6 +590,8 @@ probe_done:
EXPORT(kernelsp)
PTR 0
+EXPORT(current_pgd)
+ PTR 0
.text
.org 0x1000