summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorVineet Gupta <vgupta@synopsys.com>2017-12-08 17:45:57 +0100
committerVineet Gupta <vgupta@synopsys.com>2018-01-03 09:31:27 +0100
commitaf1be2e21203867cb958aaceed5366e2e24b88e8 (patch)
tree668d1bc1b3051597af4d316b20ab7da9d6cb4fce /arch
parentARC: handle gcc generated __builtin_trap() (diff)
downloadlinux-af1be2e21203867cb958aaceed5366e2e24b88e8.tar.xz
linux-af1be2e21203867cb958aaceed5366e2e24b88e8.zip
ARC: handle gcc generated __builtin_trap for older compiler
ARC gcc prior to GNU 2018.03 release didn't have a target specific __builtin_trap() implementation, generating default abort() call. Implement the abort() call - emulating what newer gcc does for the same, as suggested by Arnd. Acked-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arc/kernel/traps.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/arc/kernel/traps.c b/arch/arc/kernel/traps.c
index 004f4e4a4c10..133a4dae41fe 100644
--- a/arch/arc/kernel/traps.c
+++ b/arch/arc/kernel/traps.c
@@ -161,3 +161,11 @@ void do_insterror_or_kprobe(unsigned long address, struct pt_regs *regs)
insterror_is_error(address, regs);
}
+
+/*
+ * abort() call generated by older gcc for __builtin_trap()
+ */
+void abort(void)
+{
+ __asm__ __volatile__("trap_s 5\n");
+}