aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/kernel')
-rw-r--r--arch/arm/kernel/entry-armv.S17
-rw-r--r--arch/arm/kernel/setup.c3
2 files changed, 18 insertions, 2 deletions
diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S
index 35f3f20d6731..caa6c396ec78 100644
--- a/arch/arm/kernel/entry-armv.S
+++ b/arch/arm/kernel/entry-armv.S
@@ -30,6 +30,14 @@
30 * Interrupt handling. Preserves r7, r8, r9 30 * Interrupt handling. Preserves r7, r8, r9
31 */ 31 */
32 .macro irq_handler 32 .macro irq_handler
33#ifdef CONFIG_MULTI_IRQ_HANDLER
34 ldr r5, =handle_arch_irq
35 mov r0, sp
36 ldr r5, [r5]
37 adr lr, BSYM(9997f)
38 teq r5, #0
39 movne pc, r5
40#endif
33 get_irqnr_preamble r5, lr 41 get_irqnr_preamble r5, lr
341: get_irqnr_and_base r0, r6, r5, lr 421: get_irqnr_and_base r0, r6, r5, lr
35 movne r1, sp 43 movne r1, sp
@@ -58,9 +66,8 @@
58 adrne lr, BSYM(1b) 66 adrne lr, BSYM(1b)
59 bne do_local_timer 67 bne do_local_timer
60#endif 68#endif
619997:
62#endif 69#endif
63 709997:
64 .endm 71 .endm
65 72
66#ifdef CONFIG_KPROBES 73#ifdef CONFIG_KPROBES
@@ -1245,3 +1252,9 @@ cr_alignment:
1245 .space 4 1252 .space 4
1246cr_no_alignment: 1253cr_no_alignment:
1247 .space 4 1254 .space 4
1255
1256#ifdef CONFIG_MULTI_IRQ_HANDLER
1257 .globl handle_arch_irq
1258handle_arch_irq:
1259 .space 4
1260#endif
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
index 8075e592f902..0826f36330c4 100644
--- a/arch/arm/kernel/setup.c
+++ b/arch/arm/kernel/setup.c
@@ -875,6 +875,9 @@ void __init setup_arch(char **cmdline_p)
875 init_arch_irq = mdesc->init_irq; 875 init_arch_irq = mdesc->init_irq;
876 system_timer = mdesc->timer; 876 system_timer = mdesc->timer;
877 init_machine = mdesc->init_machine; 877 init_machine = mdesc->init_machine;
878#ifdef CONFIG_MULTI_IRQ_HANDLER
879 handle_arch_irq = mdesc->handle_irq;
880#endif
878 881
879#ifdef CONFIG_VT 882#ifdef CONFIG_VT
880#if defined(CONFIG_VGA_CONSOLE) 883#if defined(CONFIG_VGA_CONSOLE)