signal.c (172ae2e7f8ff9053905a36672453a6d2ff95b182) signal.c (3bffb6529cf10d48a97ac0d6d789986894c25c37)
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

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

135 /* No signal to deliver -- put the saved sigmask back */
136 if (ti->local_flags & _TLF_RESTORE_SIGMASK) {
137 ti->local_flags &= ~_TLF_RESTORE_SIGMASK;
138 sigprocmask(SIG_SETMASK, &current->saved_sigmask, NULL);
139 }
140 return 0; /* no signals delivered */
141 }
142
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

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

135 /* No signal to deliver -- put the saved sigmask back */
136 if (ti->local_flags & _TLF_RESTORE_SIGMASK) {
137 ti->local_flags &= ~_TLF_RESTORE_SIGMASK;
138 sigprocmask(SIG_SETMASK, &current->saved_sigmask, NULL);
139 }
140 return 0; /* no signals delivered */
141 }
142
143#ifndef CONFIG_PPC_ADV_DEBUG_REGS
143 /*
144 * Reenable the DABR before delivering the signal to
145 * user space. The DABR will have been cleared if it
146 * triggered inside the kernel.
147 */
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 */
148 if (current->thread.dabr) {
149 if (current->thread.dabr)
149 set_dabr(current->thread.dabr);
150 set_dabr(current->thread.dabr);
150#ifdef CONFIG_PPC_ADV_DEBUG_REGS
151 mtspr(SPRN_DBCR0, current->thread.dbcr0);
152#endif
151#endif
153 }
154
155 if (is32) {
156 if (ka.sa.sa_flags & SA_SIGINFO)
157 ret = handle_rt_signal32(signr, &ka, &info, oldset,
158 regs);
159 else
160 ret = handle_signal32(signr, &ka, &info, oldset,
161 regs);

--- 46 unchanged lines hidden ---
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 ---