powerpc/64s/exception: machine check move tramp code
Following convention, move the tramp code (unrelocated) above the common handlers (relocated). Signed-off-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/20190802105709.27696-13-npiggin@gmail.com
This commit is contained in:
Родитель
c8eb54dbc8
Коммит
abd1f4ca2b
|
@ -945,6 +945,17 @@ EXC_REAL_BEGIN(machine_check, 0x200, 0x100)
|
||||||
EXC_REAL_END(machine_check, 0x200, 0x100)
|
EXC_REAL_END(machine_check, 0x200, 0x100)
|
||||||
EXC_VIRT_NONE(0x4200, 0x100)
|
EXC_VIRT_NONE(0x4200, 0x100)
|
||||||
|
|
||||||
|
#ifdef CONFIG_PPC_PSERIES
|
||||||
|
TRAMP_REAL_BEGIN(machine_check_fwnmi)
|
||||||
|
/* See comment at machine_check exception, don't turn on RI */
|
||||||
|
EXCEPTION_PROLOG_0 PACA_EXMC
|
||||||
|
EXCEPTION_PROLOG_1 EXC_STD, PACA_EXMC, 0, 0x200, 1, 1, 0
|
||||||
|
mfctr r10 /* save ctr */
|
||||||
|
BRANCH_TO_C000(r11, machine_check_early_common)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
TRAMP_KVM_SKIP(PACA_EXMC, 0x200)
|
||||||
|
|
||||||
EXC_COMMON_BEGIN(machine_check_early_common)
|
EXC_COMMON_BEGIN(machine_check_early_common)
|
||||||
mtctr r10 /* Restore ctr */
|
mtctr r10 /* Restore ctr */
|
||||||
mfspr r11,SPRN_SRR0
|
mfspr r11,SPRN_SRR0
|
||||||
|
@ -1018,17 +1029,6 @@ END_FTR_SECTION_IFSET(CPU_FTR_HVMODE)
|
||||||
b 1b
|
b 1b
|
||||||
b . /* prevent speculative execution */
|
b . /* prevent speculative execution */
|
||||||
|
|
||||||
#ifdef CONFIG_PPC_PSERIES
|
|
||||||
TRAMP_REAL_BEGIN(machine_check_fwnmi)
|
|
||||||
/* See comment at machine_check exception, don't turn on RI */
|
|
||||||
EXCEPTION_PROLOG_0 PACA_EXMC
|
|
||||||
EXCEPTION_PROLOG_1 EXC_STD, PACA_EXMC, 0, 0x200, 1, 1, 0
|
|
||||||
mfctr r10 /* save ctr */
|
|
||||||
BRANCH_TO_C000(r11, machine_check_early_common)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
TRAMP_KVM_SKIP(PACA_EXMC, 0x200)
|
|
||||||
|
|
||||||
EXC_COMMON_BEGIN(machine_check_common)
|
EXC_COMMON_BEGIN(machine_check_common)
|
||||||
/*
|
/*
|
||||||
* Machine check is different because we use a different
|
* Machine check is different because we use a different
|
||||||
|
|
Загрузка…
Ссылка в новой задаче