traps.c (f615136c06a791364f5afa8b8ba965315a6440f1) | traps.c (49b424fedaf88d0fa9913082b8c1ccd012a8a972) |
---|---|
1/* 2 * arch/xtensa/kernel/traps.c 3 * 4 * Exception handling. 5 * 6 * Derived from code with the following copyrights: 7 * Copyright (C) 1994 - 1999 by Ralf Baechle 8 * Modified for R3000 by Paul M. Antoine, 1995, 1996 --- 318 unchanged lines hidden (view full) --- 327{ 328 void *previous = (void *)per_cpu(exc_table, 0)[ 329 EXC_TABLE_DEFAULT / 4 + cause]; 330 set_handler(EXC_TABLE_DEFAULT / 4 + cause, handler); 331 return previous; 332} 333 334 | 1/* 2 * arch/xtensa/kernel/traps.c 3 * 4 * Exception handling. 5 * 6 * Derived from code with the following copyrights: 7 * Copyright (C) 1994 - 1999 by Ralf Baechle 8 * Modified for R3000 by Paul M. Antoine, 1995, 1996 --- 318 unchanged lines hidden (view full) --- 327{ 328 void *previous = (void *)per_cpu(exc_table, 0)[ 329 EXC_TABLE_DEFAULT / 4 + cause]; 330 set_handler(EXC_TABLE_DEFAULT / 4 + cause, handler); 331 return previous; 332} 333 334 |
335static void __init trap_init_excsave(void) | 335static void trap_init_excsave(void) |
336{ 337 unsigned long excsave1 = (unsigned long)this_cpu_ptr(exc_table); 338 __asm__ __volatile__("wsr %0, excsave1\n" : : "a" (excsave1)); 339} 340 341/* 342 * Initialize dispatch tables. 343 * --- 35 unchanged lines hidden (view full) --- 379 set_handler (EXC_TABLE_FAST_KERNEL/4 + cause, handler); 380 } 381 382 /* Initialize EXCSAVE_1 to hold the address of the exception table. */ 383 trap_init_excsave(); 384} 385 386#ifdef CONFIG_SMP | 336{ 337 unsigned long excsave1 = (unsigned long)this_cpu_ptr(exc_table); 338 __asm__ __volatile__("wsr %0, excsave1\n" : : "a" (excsave1)); 339} 340 341/* 342 * Initialize dispatch tables. 343 * --- 35 unchanged lines hidden (view full) --- 379 set_handler (EXC_TABLE_FAST_KERNEL/4 + cause, handler); 380 } 381 382 /* Initialize EXCSAVE_1 to hold the address of the exception table. */ 383 trap_init_excsave(); 384} 385 386#ifdef CONFIG_SMP |
387void __init secondary_trap_init(void) | 387void secondary_trap_init(void) |
388{ 389 trap_init_excsave(); 390} 391#endif 392 393/* 394 * This function dumps the current valid window frame and other base registers. 395 */ --- 125 unchanged lines hidden --- | 388{ 389 trap_init_excsave(); 390} 391#endif 392 393/* 394 * This function dumps the current valid window frame and other base registers. 395 */ --- 125 unchanged lines hidden --- |