diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-10-11 21:49:08 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-10-11 21:49:08 -0400 |
commit | 8213a2f3eeafdecf06dd718cb4130372263f6067 (patch) | |
tree | 0d02e3201dac64d1429f8552ee1163d4a1ef1646 /arch/tile/kernel | |
parent | 40924754f2cabd5d9af4bcd4dcecc362b5e0baa1 (diff) | |
parent | 12f79be93d94698778ff2b3f921073fc5f6780d6 (diff) |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal
Pull pile 2 of execve and kernel_thread unification work from Al Viro:
"Stuff in there: kernel_thread/kernel_execve/sys_execve conversions for
several more architectures plus assorted signal fixes and cleanups.
There'll be more (in particular, real fixes for the alpha
do_notify_resume() irq mess)..."
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal: (43 commits)
alpha: don't open-code trace_report_syscall_{enter,exit}
Uninclude linux/freezer.h
m32r: trim masks
avr32: trim masks
tile: don't bother with SIGTRAP in setup_frame
microblaze: don't bother with SIGTRAP in setup_rt_frame()
mn10300: don't bother with SIGTRAP in setup_frame()
frv: no need to raise SIGTRAP in setup_frame()
x86: get rid of duplicate code in case of CONFIG_VM86
unicore32: remove pointless test
h8300: trim _TIF_WORK_MASK
parisc: decide whether to go to slow path (tracesys) based on thread flags
parisc: don't bother looping in do_signal()
parisc: fix double restarts
bury the rest of TIF_IRET
sanitize tsk_is_polling()
bury _TIF_RESTORE_SIGMASK
unicore32: unobfuscate _TIF_WORK_MASK
mips: NOTIFY_RESUME is not needed in TIF masks
mips: merge the identical "return from syscall" per-ABI code
...
Conflicts:
arch/arm/include/asm/thread_info.h
Diffstat (limited to 'arch/tile/kernel')
-rw-r--r-- | arch/tile/kernel/compat_signal.c | 9 | ||||
-rw-r--r-- | arch/tile/kernel/signal.c | 12 |
2 files changed, 2 insertions, 19 deletions
diff --git a/arch/tile/kernel/compat_signal.c b/arch/tile/kernel/compat_signal.c index 7bc0859a9f5e..08b4fe1717bb 100644 --- a/arch/tile/kernel/compat_signal.c +++ b/arch/tile/kernel/compat_signal.c | |||
@@ -354,15 +354,6 @@ int compat_setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info, | |||
354 | regs->regs[1] = ptr_to_compat_reg(&frame->info); | 354 | regs->regs[1] = ptr_to_compat_reg(&frame->info); |
355 | regs->regs[2] = ptr_to_compat_reg(&frame->uc); | 355 | regs->regs[2] = ptr_to_compat_reg(&frame->uc); |
356 | regs->flags |= PT_FLAGS_CALLER_SAVES; | 356 | regs->flags |= PT_FLAGS_CALLER_SAVES; |
357 | |||
358 | /* | ||
359 | * Notify any tracer that was single-stepping it. | ||
360 | * The tracer may want to single-step inside the | ||
361 | * handler too. | ||
362 | */ | ||
363 | if (test_thread_flag(TIF_SINGLESTEP)) | ||
364 | ptrace_notify(SIGTRAP); | ||
365 | |||
366 | return 0; | 357 | return 0; |
367 | 358 | ||
368 | give_sigsegv: | 359 | give_sigsegv: |
diff --git a/arch/tile/kernel/signal.c b/arch/tile/kernel/signal.c index e29b0553211d..67efb656d104 100644 --- a/arch/tile/kernel/signal.c +++ b/arch/tile/kernel/signal.c | |||
@@ -219,15 +219,6 @@ static int setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info, | |||
219 | regs->regs[1] = (unsigned long) &frame->info; | 219 | regs->regs[1] = (unsigned long) &frame->info; |
220 | regs->regs[2] = (unsigned long) &frame->uc; | 220 | regs->regs[2] = (unsigned long) &frame->uc; |
221 | regs->flags |= PT_FLAGS_CALLER_SAVES; | 221 | regs->flags |= PT_FLAGS_CALLER_SAVES; |
222 | |||
223 | /* | ||
224 | * Notify any tracer that was single-stepping it. | ||
225 | * The tracer may want to single-step inside the | ||
226 | * handler too. | ||
227 | */ | ||
228 | if (test_thread_flag(TIF_SINGLESTEP)) | ||
229 | ptrace_notify(SIGTRAP); | ||
230 | |||
231 | return 0; | 222 | return 0; |
232 | 223 | ||
233 | give_sigsegv: | 224 | give_sigsegv: |
@@ -278,7 +269,8 @@ static void handle_signal(unsigned long sig, siginfo_t *info, | |||
278 | ret = setup_rt_frame(sig, ka, info, oldset, regs); | 269 | ret = setup_rt_frame(sig, ka, info, oldset, regs); |
279 | if (ret) | 270 | if (ret) |
280 | return; | 271 | return; |
281 | signal_delivered(sig, info, ka, regs, 0); | 272 | signal_delivered(sig, info, ka, regs, |
273 | test_thread_flag(TIF_SINGLESTEP)); | ||
282 | } | 274 | } |
283 | 275 | ||
284 | /* | 276 | /* |