aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/powerpc/include/asm/exception-64s.h2
-rw-r--r--arch/powerpc/kernel/exceptions-64s.S16
2 files changed, 15 insertions, 3 deletions
diff --git a/arch/powerpc/include/asm/exception-64s.h b/arch/powerpc/include/asm/exception-64s.h
index ad708dda3ba3..9d5367e7e19b 100644
--- a/arch/powerpc/include/asm/exception-64s.h
+++ b/arch/powerpc/include/asm/exception-64s.h
@@ -305,6 +305,8 @@ label##_relon_hv: \
305#define SOFTEN_VALUE_0x502 PACA_IRQ_EE 305#define SOFTEN_VALUE_0x502 PACA_IRQ_EE
306#define SOFTEN_VALUE_0x900 PACA_IRQ_DEC 306#define SOFTEN_VALUE_0x900 PACA_IRQ_DEC
307#define SOFTEN_VALUE_0x982 PACA_IRQ_DEC 307#define SOFTEN_VALUE_0x982 PACA_IRQ_DEC
308#define SOFTEN_VALUE_0xe80 PACA_IRQ_DBELL
309#define SOFTEN_VALUE_0xe82 PACA_IRQ_DBELL
308 310
309#define __SOFTEN_TEST(h, vec) \ 311#define __SOFTEN_TEST(h, vec) \
310 lbz r10,PACASOFTIRQEN(r13); \ 312 lbz r10,PACASOFTIRQEN(r13); \
diff --git a/arch/powerpc/kernel/exceptions-64s.S b/arch/powerpc/kernel/exceptions-64s.S
index 4665e82fa377..d08a3cdb7cbe 100644
--- a/arch/powerpc/kernel/exceptions-64s.S
+++ b/arch/powerpc/kernel/exceptions-64s.S
@@ -293,6 +293,8 @@ hv_exception_trampoline:
293 b hmi_exception_hv 293 b hmi_exception_hv
294 . = 0xe60 294 . = 0xe60
295 b hmi_exception_hv 295 b hmi_exception_hv
296 . = 0xe80
297 b h_doorbell_hv
296 298
297 /* We need to deal with the Altivec unavailable exception 299 /* We need to deal with the Altivec unavailable exception
298 * here which is at 0xf20, thus in the middle of the 300 * here which is at 0xf20, thus in the middle of the
@@ -514,6 +516,8 @@ ALT_FTR_SECTION_END_IFCLR(CPU_FTR_ARCH_206)
514 KVM_HANDLER(PACA_EXGEN, EXC_HV, 0xe42) 516 KVM_HANDLER(PACA_EXGEN, EXC_HV, 0xe42)
515 STD_EXCEPTION_HV(., 0xe62, hmi_exception) /* need to flush cache ? */ 517 STD_EXCEPTION_HV(., 0xe62, hmi_exception) /* need to flush cache ? */
516 KVM_HANDLER(PACA_EXGEN, EXC_HV, 0xe62) 518 KVM_HANDLER(PACA_EXGEN, EXC_HV, 0xe62)
519 MASKABLE_EXCEPTION_HV(., 0xe82, h_doorbell)
520 KVM_HANDLER(PACA_EXGEN, EXC_HV, 0xe82)
517 521
518 /* moved from 0xf00 */ 522 /* moved from 0xf00 */
519 STD_EXCEPTION_PSERIES(., 0xf00, performance_monitor) 523 STD_EXCEPTION_PSERIES(., 0xf00, performance_monitor)
@@ -657,6 +661,11 @@ machine_check_common:
657 STD_EXCEPTION_COMMON(0xe00, trap_0e, .unknown_exception) 661 STD_EXCEPTION_COMMON(0xe00, trap_0e, .unknown_exception)
658 STD_EXCEPTION_COMMON(0xe40, emulation_assist, .program_check_exception) 662 STD_EXCEPTION_COMMON(0xe40, emulation_assist, .program_check_exception)
659 STD_EXCEPTION_COMMON(0xe60, hmi_exception, .unknown_exception) 663 STD_EXCEPTION_COMMON(0xe60, hmi_exception, .unknown_exception)
664#ifdef CONFIG_PPC_DOORBELL
665 STD_EXCEPTION_COMMON_ASYNC(0xe80, h_doorbell, .doorbell_exception)
666#else
667 STD_EXCEPTION_COMMON_ASYNC(0xe80, h_doorbell, .unknown_exception)
668#endif
660 STD_EXCEPTION_COMMON_ASYNC(0xf00, performance_monitor, .performance_monitor_exception) 669 STD_EXCEPTION_COMMON_ASYNC(0xf00, performance_monitor, .performance_monitor_exception)
661 STD_EXCEPTION_COMMON(0x1300, instruction_breakpoint, .instruction_breakpoint_exception) 670 STD_EXCEPTION_COMMON(0x1300, instruction_breakpoint, .instruction_breakpoint_exception)
662 STD_EXCEPTION_COMMON(0x1502, denorm, .unknown_exception) 671 STD_EXCEPTION_COMMON(0x1502, denorm, .unknown_exception)
@@ -773,9 +782,8 @@ system_call_relon_pSeries:
773 . = 0x4e60 782 . = 0x4e60
774 b hmi_exception_relon_hv 783 b hmi_exception_relon_hv
775 784
776 /* For when we support the doorbell interrupt: 785 . = 0x4e80
777 STD_RELON_EXCEPTION_HYPERVISOR(0x4e80, 0xe80, doorbell_hyper) 786 b h_doorbell_relon_hv
778 */
779 787
780performance_monitor_relon_pSeries_1: 788performance_monitor_relon_pSeries_1:
781 . = 0x4f00 789 . = 0x4f00
@@ -1355,6 +1363,8 @@ _GLOBAL(do_stab_bolted)
1355 KVM_HANDLER(PACA_EXGEN, EXC_HV, 0xe40) 1363 KVM_HANDLER(PACA_EXGEN, EXC_HV, 0xe40)
1356 STD_RELON_EXCEPTION_HV(., 0xe60, hmi_exception) 1364 STD_RELON_EXCEPTION_HV(., 0xe60, hmi_exception)
1357 KVM_HANDLER(PACA_EXGEN, EXC_HV, 0xe60) 1365 KVM_HANDLER(PACA_EXGEN, EXC_HV, 0xe60)
1366 MASKABLE_RELON_EXCEPTION_HV(., 0xe80, h_doorbell)
1367 KVM_HANDLER(PACA_EXGEN, EXC_HV, 0xe80)
1358 1368
1359 STD_RELON_EXCEPTION_PSERIES(., 0xf00, performance_monitor) 1369 STD_RELON_EXCEPTION_PSERIES(., 0xf00, performance_monitor)
1360 STD_RELON_EXCEPTION_PSERIES(., 0xf20, altivec_unavailable) 1370 STD_RELON_EXCEPTION_PSERIES(., 0xf20, altivec_unavailable)