![David Daney](/assets/img/avatar_default.png)
This is a follow on to the vdso patch. Since all processes now have signal trampolines permanently mapped, we can use those instead of putting the trampoline on the stack and invalidating the corresponding icache across all CPUs. We also get rid of a bunch of ICACHE_REFILLS_WORKAROUND_WAR code. [Ralf: GDB 7.1 which has the necessary modifications to allow backtracing over signal frames will supposedly be released tomorrow. The old signal frame format obsoleted by this patch exists in two variations, for sane processors and for those requiring ICACHE_REFILLS_WORKAROUND_WAR. So there was never a GDB which did support backtracing over signal frames on all MIPS systems. This convinved me this series should be applied and pushed upstream as soon as possible.] Signed-off-by: David Daney <ddaney@caviumnetworks.com> To: linux-mips@linux-mips.org Patchwork: http://patchwork.linux-mips.org/patch/974/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
42 lines
1.1 KiB
C
42 lines
1.1 KiB
C
/*
|
|
* This file is subject to the terms and conditions of the GNU General Public
|
|
* License. See the file "COPYING" in the main directory of this archive
|
|
* for more details.
|
|
*
|
|
* Copyright (C) 1991, 1992 Linus Torvalds
|
|
* Copyright (C) 1994 - 2000 Ralf Baechle
|
|
* Copyright (C) 1999, 2000 Silicon Graphics, Inc.
|
|
*/
|
|
|
|
#ifndef __SIGNAL_COMMON_H
|
|
#define __SIGNAL_COMMON_H
|
|
|
|
/* #define DEBUG_SIG */
|
|
|
|
#ifdef DEBUG_SIG
|
|
# define DEBUGP(fmt, args...) printk("%s: " fmt, __func__, ##args)
|
|
#else
|
|
# define DEBUGP(fmt, args...)
|
|
#endif
|
|
|
|
#define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP)))
|
|
|
|
/*
|
|
* Determine which stack to use..
|
|
*/
|
|
extern void __user *get_sigframe(struct k_sigaction *ka, struct pt_regs *regs,
|
|
size_t frame_size);
|
|
/* Check and clear pending FPU exceptions in saved CSR */
|
|
extern int fpcsr_pending(unsigned int __user *fpcsr);
|
|
|
|
/* Make sure we will not lose FPU ownership */
|
|
#ifdef CONFIG_PREEMPT
|
|
#define lock_fpu_owner() preempt_disable()
|
|
#define unlock_fpu_owner() preempt_enable()
|
|
#else
|
|
#define lock_fpu_owner() pagefault_disable()
|
|
#define unlock_fpu_owner() pagefault_enable()
|
|
#endif
|
|
|
|
#endif /* __SIGNAL_COMMON_H */
|