diff options
-rw-r--r-- | arch/mips/kernel/traps.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c index 165b4f0bb7db..feb42c072384 100644 --- a/arch/mips/kernel/traps.c +++ b/arch/mips/kernel/traps.c | |||
@@ -1390,9 +1390,8 @@ unsigned long vi_handlers[64]; | |||
1390 | void __init *set_except_vector(int n, void *addr) | 1390 | void __init *set_except_vector(int n, void *addr) |
1391 | { | 1391 | { |
1392 | unsigned long handler = (unsigned long) addr; | 1392 | unsigned long handler = (unsigned long) addr; |
1393 | unsigned long old_handler = exception_handlers[n]; | 1393 | unsigned long old_handler = xchg(&exception_handlers[n], handler); |
1394 | 1394 | ||
1395 | exception_handlers[n] = handler; | ||
1396 | if (n == 0 && cpu_has_divec) { | 1395 | if (n == 0 && cpu_has_divec) { |
1397 | unsigned long jump_mask = ~((1 << 28) - 1); | 1396 | unsigned long jump_mask = ~((1 << 28) - 1); |
1398 | u32 *buf = (u32 *)(ebase + 0x200); | 1397 | u32 *buf = (u32 *)(ebase + 0x200); |