summaryrefslogtreecommitdiff
path: root/arch/arc/include/asm/signal.h
diff options
context:
space:
mode:
authorVineet Gupta <vgupta@synopsys.com>2013-01-18 15:12:19 +0530
committerVineet Gupta <vgupta@synopsys.com>2013-02-15 23:03:30 +0530
commitc3581039b6c51a778a70accec53a9bb7ad9a4d32 (patch)
tree6816e82f1a59fe3d4fbf8c291d3f52598531c50c /arch/arc/include/asm/signal.h
parentd8005e6b95268cbb50db3773d5f180c32a9434fe (diff)
downloadlinux-c3581039b6c51a778a70accec53a9bb7ad9a4d32.tar.gz
linux-c3581039b6c51a778a70accec53a9bb7ad9a4d32.tar.bz2
linux-c3581039b6c51a778a70accec53a9bb7ad9a4d32.zip
ARC: Signal handling
Includes following fixes courtesy review by Al-Viro * Tracer poke to Callee-regs were lost Before going off into do_signal( ) we save the user-mode callee regs (as they are not saved by default as part of pt_regs). This is to make sure that that a Tracer (if tracing related signal) is able to do likes of PEEKUSR(callee-reg). However in return path we were simply discarding the user-mode callee regs, which would break a POKEUSR(callee-reg) from a tracer. * Issue related to multiple syscall restarts are addressed in next patch Signed-off-by: Vineet Gupta <vgupta@synopsys.com> Cc: Al Viro <viro@ZenIV.linux.org.uk> Acked-by: Jonas Bonn <jonas@southpole.se>
Diffstat (limited to 'arch/arc/include/asm/signal.h')
-rw-r--r--arch/arc/include/asm/signal.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/arch/arc/include/asm/signal.h b/arch/arc/include/asm/signal.h
new file mode 100644
index 000000000000..fad62f7f42d6
--- /dev/null
+++ b/arch/arc/include/asm/signal.h
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com)
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * Amit Bhor, Sameer Dhavale: Codito Technologies 2004
+ */
+
+#ifndef _ASM_ARC_SIGNAL_H
+#define _ASM_ARC_SIGNAL_H
+
+/*
+ * This is much needed for ARC sigreturn optimization.
+ * This allows uClibc to piggback the addr of a sigreturn stub in sigaction,
+ * which allows sigreturn based re-entry into kernel after handling signal.
+ * W/o this kernel needs to "synthesize" the sigreturn trampoline on user
+ * mode stack which in turn forces the following:
+ * -TLB Flush (after making the stack page executable)
+ * -Cache line Flush (to make I/D Cache lines coherent)
+ */
+#define SA_RESTORER 0x04000000
+
+#include <asm-generic/signal.h>
+
+#endif /* _ASM_ARC_SIGNAL_H */