Skip to content

Commit 9fa8c59

Browse files
committed
xtensa: clean up excsave1 initialization
Use xtensa_set_sr instead of inline assembly. Rename local variable exc_table in early_trap_init to avoid conflict with per-CPU variable of the same name. Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
1 parent 3e554d4 commit 9fa8c59

2 files changed

Lines changed: 3 additions & 4 deletions

File tree

arch/xtensa/include/asm/traps.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,11 +57,11 @@ void do_unhandled(struct pt_regs *regs);
5757
/* Initialize minimal exc_table structure sufficient for basic paging */
5858
static inline void __init early_trap_init(void)
5959
{
60-
static struct exc_table exc_table __initdata = {
60+
static struct exc_table init_exc_table __initdata = {
6161
.fast_kernel_handler[EXCCAUSE_DTLB_MISS] =
6262
fast_second_level_miss,
6363
};
64-
__asm__ __volatile__("wsr %0, excsave1\n" : : "a" (&exc_table));
64+
xtensa_set_sr(&init_exc_table, excsave1);
6565
}
6666

6767
void secondary_trap_init(void);

arch/xtensa/kernel/traps.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -372,8 +372,7 @@ __init trap_set_handler(int cause, xtensa_exception_handler *handler)
372372

373373
static void trap_init_excsave(void)
374374
{
375-
unsigned long excsave1 = (unsigned long)this_cpu_ptr(&exc_table);
376-
__asm__ __volatile__("wsr %0, excsave1\n" : : "a" (excsave1));
375+
xtensa_set_sr(this_cpu_ptr(&exc_table), excsave1);
377376
}
378377

379378
static void trap_init_debug(void)

0 commit comments

Comments
 (0)