]> git.proxmox.com Git - mirror_ubuntu-kernels.git/blob - arch/arm/include/asm/entry-macro-multi.S
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
[mirror_ubuntu-kernels.git] / arch / arm / include / asm / entry-macro-multi.S
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #include <asm/assembler.h>
3
4 /*
5 * Interrupt handling. Preserves r7, r8, r9
6 */
7 .macro arch_irq_handler_default
8 get_irqnr_preamble r6, lr
9 1: get_irqnr_and_base r0, r2, r6, lr
10 movne r1, sp
11 @
12 @ routine called with r0 = irq number, r1 = struct pt_regs *
13 @
14 badrne lr, 1b
15 bne asm_do_IRQ
16
17 #ifdef CONFIG_SMP
18 /*
19 * XXX
20 *
21 * this macro assumes that irqstat (r2) and base (r6) are
22 * preserved from get_irqnr_and_base above
23 */
24 ALT_SMP(test_for_ipi r0, r2, r6, lr)
25 ALT_UP_B(9997f)
26 movne r1, sp
27 badrne lr, 1b
28 bne do_IPI
29 #endif
30 9997:
31 .endm
32
33 .macro arch_irq_handler, symbol_name
34 .align 5
35 .global \symbol_name
36 \symbol_name:
37 mov r8, lr
38 arch_irq_handler_default
39 ret r8
40 .endm