diff options
Diffstat (limited to 'arch/mips/kernel/traps.c')
-rw-r--r-- | arch/mips/kernel/traps.c | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c index 77cff1f6d050..e3be67012d78 100644 --- a/arch/mips/kernel/traps.c +++ b/arch/mips/kernel/traps.c | |||
@@ -41,6 +41,7 @@ | |||
41 | #include <asm/dsp.h> | 41 | #include <asm/dsp.h> |
42 | #include <asm/fpu.h> | 42 | #include <asm/fpu.h> |
43 | #include <asm/fpu_emulator.h> | 43 | #include <asm/fpu_emulator.h> |
44 | #include <asm/idle.h> | ||
44 | #include <asm/mipsregs.h> | 45 | #include <asm/mipsregs.h> |
45 | #include <asm/mipsmtregs.h> | 46 | #include <asm/mipsmtregs.h> |
46 | #include <asm/module.h> | 47 | #include <asm/module.h> |
@@ -57,7 +58,6 @@ | |||
57 | #include <asm/uasm.h> | 58 | #include <asm/uasm.h> |
58 | 59 | ||
59 | extern void check_wait(void); | 60 | extern void check_wait(void); |
60 | extern asmlinkage void r4k_wait(void); | ||
61 | extern asmlinkage void rollback_handle_int(void); | 61 | extern asmlinkage void rollback_handle_int(void); |
62 | extern asmlinkage void handle_int(void); | 62 | extern asmlinkage void handle_int(void); |
63 | extern u32 handle_tlbl[]; | 63 | extern u32 handle_tlbl[]; |
@@ -1542,7 +1542,7 @@ static void *set_vi_srs_handler(int n, vi_handler_t addr, int srs) | |||
1542 | extern char except_vec_vi, except_vec_vi_lui; | 1542 | extern char except_vec_vi, except_vec_vi_lui; |
1543 | extern char except_vec_vi_ori, except_vec_vi_end; | 1543 | extern char except_vec_vi_ori, except_vec_vi_end; |
1544 | extern char rollback_except_vec_vi; | 1544 | extern char rollback_except_vec_vi; |
1545 | char *vec_start = (cpu_wait == r4k_wait) ? | 1545 | char *vec_start = using_rollback_handler() ? |
1546 | &rollback_except_vec_vi : &except_vec_vi; | 1546 | &rollback_except_vec_vi : &except_vec_vi; |
1547 | #ifdef CONFIG_MIPS_MT_SMTC | 1547 | #ifdef CONFIG_MIPS_MT_SMTC |
1548 | /* | 1548 | /* |
@@ -1656,7 +1656,6 @@ void __cpuinit per_cpu_trap_init(bool is_boot_cpu) | |||
1656 | unsigned int cpu = smp_processor_id(); | 1656 | unsigned int cpu = smp_processor_id(); |
1657 | unsigned int status_set = ST0_CU0; | 1657 | unsigned int status_set = ST0_CU0; |
1658 | unsigned int hwrena = cpu_hwrena_impl_bits; | 1658 | unsigned int hwrena = cpu_hwrena_impl_bits; |
1659 | unsigned long asid = 0; | ||
1660 | #ifdef CONFIG_MIPS_MT_SMTC | 1659 | #ifdef CONFIG_MIPS_MT_SMTC |
1661 | int secondaryTC = 0; | 1660 | int secondaryTC = 0; |
1662 | int bootTC = (cpu == 0); | 1661 | int bootTC = (cpu == 0); |
@@ -1740,9 +1739,8 @@ void __cpuinit per_cpu_trap_init(bool is_boot_cpu) | |||
1740 | } | 1739 | } |
1741 | #endif /* CONFIG_MIPS_MT_SMTC */ | 1740 | #endif /* CONFIG_MIPS_MT_SMTC */ |
1742 | 1741 | ||
1743 | asid = ASID_FIRST_VERSION; | 1742 | if (!cpu_data[cpu].asid_cache) |
1744 | cpu_data[cpu].asid_cache = asid; | 1743 | cpu_data[cpu].asid_cache = ASID_FIRST_VERSION; |
1745 | TLBMISS_HANDLER_SETUP(); | ||
1746 | 1744 | ||
1747 | atomic_inc(&init_mm.mm_count); | 1745 | atomic_inc(&init_mm.mm_count); |
1748 | current->active_mm = &init_mm; | 1746 | current->active_mm = &init_mm; |
@@ -1814,10 +1812,8 @@ void __init trap_init(void) | |||
1814 | extern char except_vec4; | 1812 | extern char except_vec4; |
1815 | extern char except_vec3_r4000; | 1813 | extern char except_vec3_r4000; |
1816 | unsigned long i; | 1814 | unsigned long i; |
1817 | int rollback; | ||
1818 | 1815 | ||
1819 | check_wait(); | 1816 | check_wait(); |
1820 | rollback = (cpu_wait == r4k_wait); | ||
1821 | 1817 | ||
1822 | #if defined(CONFIG_KGDB) | 1818 | #if defined(CONFIG_KGDB) |
1823 | if (kgdb_early_setup) | 1819 | if (kgdb_early_setup) |
@@ -1894,7 +1890,8 @@ void __init trap_init(void) | |||
1894 | if (board_be_init) | 1890 | if (board_be_init) |
1895 | board_be_init(); | 1891 | board_be_init(); |
1896 | 1892 | ||
1897 | set_except_vector(0, rollback ? rollback_handle_int : handle_int); | 1893 | set_except_vector(0, using_rollback_handler() ? rollback_handle_int |
1894 | : handle_int); | ||
1898 | set_except_vector(1, handle_tlbm); | 1895 | set_except_vector(1, handle_tlbm); |
1899 | set_except_vector(2, handle_tlbl); | 1896 | set_except_vector(2, handle_tlbl); |
1900 | set_except_vector(3, handle_tlbs); | 1897 | set_except_vector(3, handle_tlbs); |