signal.c (b65b34895437915f411882dd40d704eb0863ffb0) signal.c (06532a6743d83fac4b79389fc8c86c88cb4e3302)
1/*
2 * Common signal handling code for both 32 and 64 bits
3 *
4 * Copyright (c) 2007 Benjamin Herrenschmidt, IBM Coproration
5 * Extracted from signal_32.c and signal_64.c
6 *
7 * This file is subject to the terms and conditions of the GNU General
8 * Public License. See the file README.legal in the main directory of
9 * this archive for more details.
10 */
11
12#include <linux/tracehook.h>
13#include <linux/signal.h>
1/*
2 * Common signal handling code for both 32 and 64 bits
3 *
4 * Copyright (c) 2007 Benjamin Herrenschmidt, IBM Coproration
5 * Extracted from signal_32.c and signal_64.c
6 *
7 * This file is subject to the terms and conditions of the GNU General
8 * Public License. See the file README.legal in the main directory of
9 * this archive for more details.
10 */
11
12#include <linux/tracehook.h>
13#include <linux/signal.h>
14#include <asm/hw_breakpoint.h>
14#include <asm/uaccess.h>
15#include <asm/unistd.h>
16
17#include "signal.h"
18
19/* Log an error when sending an unhandled signal to a process. Controlled
20 * through debug.exception-trace sysctl.
21 */

--- 122 unchanged lines hidden (view full) ---

144 /*
145 * Reenable the DABR before delivering the signal to
146 * user space. The DABR will have been cleared if it
147 * triggered inside the kernel.
148 */
149 if (current->thread.dabr)
150 set_dabr(current->thread.dabr);
151#endif
15#include <asm/uaccess.h>
16#include <asm/unistd.h>
17
18#include "signal.h"
19
20/* Log an error when sending an unhandled signal to a process. Controlled
21 * through debug.exception-trace sysctl.
22 */

--- 122 unchanged lines hidden (view full) ---

145 /*
146 * Reenable the DABR before delivering the signal to
147 * user space. The DABR will have been cleared if it
148 * triggered inside the kernel.
149 */
150 if (current->thread.dabr)
151 set_dabr(current->thread.dabr);
152#endif
153 /* Re-enable the breakpoints for the signal stack */
154 thread_change_pc(current, regs);
152
153 if (is32) {
154 if (ka.sa.sa_flags & SA_SIGINFO)
155 ret = handle_rt_signal32(signr, &ka, &info, oldset,
156 regs);
157 else
158 ret = handle_signal32(signr, &ka, &info, oldset,
159 regs);

--- 46 unchanged lines hidden ---
155
156 if (is32) {
157 if (ka.sa.sa_flags & SA_SIGINFO)
158 ret = handle_rt_signal32(signr, &ka, &info, oldset,
159 regs);
160 else
161 ret = handle_signal32(signr, &ka, &info, oldset,
162 regs);

--- 46 unchanged lines hidden ---