diff options
Diffstat (limited to 'arch/mips/kernel/head.S')
-rw-r--r-- | arch/mips/kernel/head.S | 31 |
1 files changed, 20 insertions, 11 deletions
diff --git a/arch/mips/kernel/head.S b/arch/mips/kernel/head.S index 11dd160ec..7429a42bf 100644 --- a/arch/mips/kernel/head.S +++ b/arch/mips/kernel/head.S @@ -1,4 +1,4 @@ -/* $Id: head.S,v 1.14 1999/08/20 21:59:02 ralf Exp $ +/* $Id: head.S,v 1.15 1999/10/07 07:34:24 raiko Exp $ * * arch/mips/kernel/head.S * @@ -8,15 +8,16 @@ * * Copyright (C) 1994, 1995 Waldorf Electronics * Written by Ralf Baechle and Andreas Busse - * Copyright (C) 1995, 1996, 1997, 1998 Ralf Baechle + * Copyright (C) 1995 - 1999 Ralf Baechle * Copyright (C) 1996 Paul M. Antoine * Modified for DECStation and hence R3000 support by Paul M. Antoine * Further modifications by David S. Miller and Harald Koerfgen + * Copyright (C) 1999 Silicon Graphics, Inc. * * Head.S contains the MIPS exception handler and startup code. */ #include <linux/config.h> -#include <linux/tasks.h> +#include <linux/threads.h> #include <asm/asm.h> #include <asm/cacheops.h> @@ -55,7 +56,8 @@ mfc0 k0, CP0_BADVADDR # Get faulting address _GET_CURRENT(k1) # get current task ptr srl k0, k0, 22 # get pgd only bits - lw k1, THREAD_PGDIR(k1) # get task pg_dir + lw k1, TASK_MM(k1) # get task pg_dir + lw k1, MM_PGD(k1) # get pgd pointer sll k0, k0, 2 addu k1, k1, k0 # add in pgd offset mfc0 k0, CP0_CONTEXT # get context reg @@ -82,7 +84,8 @@ mfc0 k0, CP0_BADVADDR _GET_CURRENT(k1) # get current task ptr srl k0, k0, 22 - lw k1, THREAD_PGDIR(k1) + lw k1, TASK_MM(k1) + lw k1, MM_PGD(k1) # get pgd pointer sll k0, k0, 2 addu k1, k1, k0 mfc0 k0, CP0_CONTEXT @@ -110,7 +113,8 @@ mfc0 k0, CP0_BADVADDR # Get faulting address _GET_CURRENT(k1) # get current task ptr srl k0, k0, 22 # get pgd only bits - lw k1, THREAD_PGDIR(k1) # get task pg_dir + lw k1, TASK_MM(k1) # get task pg_dir + lw k1, MM_PGD(k1) # get pgd pointer sll k0, k0, 2 addu k1, k1, k0 # add in pgd offset lw k1, (k1) @@ -136,7 +140,8 @@ mfc0 k0, CP0_BADVADDR _GET_CURRENT(k1) # get current task ptr srl k0, k0, 22 - lw k1, THREAD_PGDIR(k1) + lw k1, TASK_MM(k1) + lw k1, MM_PGD(k1) # get pgd pointer sll k0, k0, 2 addu k1, k1, k0 mfc0 k0, CP0_CONTEXT @@ -167,7 +172,8 @@ mfc0 k0, CP0_BADVADDR _GET_CURRENT(k1) # get current task ptr srl k0, k0, 22 - lw k1, THREAD_PGDIR(k1) + lw k1, TASK_MM(k1) + lw k1, MM_PGD(k1) # get pgd pointer sll k0, k0, 2 addu k1, k1, k0 mfc0 k0, CP0_CONTEXT @@ -198,7 +204,8 @@ mfc0 k0, CP0_BADVADDR _GET_CURRENT(k1) # get current task ptr srl k0, k0, 22 - lw k1, THREAD_PGDIR(k1) + lw k1, TASK_MM(k1) + lw k1, MM_PGD(k1) # get pgd pointer sll k0, k0, 2 addu k1, k1, k0 mfc0 k0, CP0_CONTEXT @@ -228,7 +235,8 @@ mfc0 k0, CP0_BADVADDR _GET_CURRENT(k1) # get current task ptr srl k0, k0, 22 - lw k1, THREAD_PGDIR(k1) + lw k1, TASK_MM(k1) + lw k1, MM_PGD(k1) # get pgd pointer sll k0, k0, 2 addu k1, k1, k0 mfc0 k0, CP0_CONTEXT @@ -261,8 +269,9 @@ .set mips1 mfc0 k0, CP0_BADVADDR _GET_CURRENT(k1) # get current task ptr + lw k1, TASK_MM(k1) srl k0, k0, 22 - lw k1, THREAD_PGDIR(k1) + lw k1, MM_PGD(k1) # get pgd pointer sll k0, k0, 2 addu k1, k1, k0 mfc0 k0, CP0_CONTEXT |