linux/arch/arc/include/asm/signal.h
Vineet Gupta c3581039b6 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>
2013-02-15 23:03:30 +05:30

28 lines
933 B
C

/*
* 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 */