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); |
