aboutsummaryrefslogtreecommitdiffstats
path: root/arch/microblaze
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-10-11 21:49:08 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2012-10-11 21:49:08 -0400
commit8213a2f3eeafdecf06dd718cb4130372263f6067 (patch)
tree0d02e3201dac64d1429f8552ee1163d4a1ef1646 /arch/microblaze
parent40924754f2cabd5d9af4bcd4dcecc362b5e0baa1 (diff)
parent12f79be93d94698778ff2b3f921073fc5f6780d6 (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/microblaze')
-rw-r--r--arch/microblaze/include/asm/thread_info.h3
-rw-r--r--arch/microblaze/kernel/signal.c7
2 files changed, 3 insertions, 7 deletions
diff --git a/arch/microblaze/include/asm/thread_info.h b/arch/microblaze/include/asm/thread_info.h
index 6c610234ffab..008f30433d22 100644
--- a/arch/microblaze/include/asm/thread_info.h
+++ b/arch/microblaze/include/asm/thread_info.h
@@ -121,7 +121,6 @@ static inline struct thread_info *current_thread_info(void)
121#define TIF_NEED_RESCHED 3 /* rescheduling necessary */ 121#define TIF_NEED_RESCHED 3 /* rescheduling necessary */
122/* restore singlestep on return to user mode */ 122/* restore singlestep on return to user mode */
123#define TIF_SINGLESTEP 4 123#define TIF_SINGLESTEP 4
124#define TIF_IRET 5 /* return with iret */
125#define TIF_MEMDIE 6 /* is terminating due to OOM killer */ 124#define TIF_MEMDIE 6 /* is terminating due to OOM killer */
126#define TIF_SYSCALL_AUDIT 9 /* syscall auditing active */ 125#define TIF_SYSCALL_AUDIT 9 /* syscall auditing active */
127#define TIF_SECCOMP 10 /* secure computing */ 126#define TIF_SECCOMP 10 /* secure computing */
@@ -134,7 +133,6 @@ static inline struct thread_info *current_thread_info(void)
134#define _TIF_SIGPENDING (1 << TIF_SIGPENDING) 133#define _TIF_SIGPENDING (1 << TIF_SIGPENDING)
135#define _TIF_NEED_RESCHED (1 << TIF_NEED_RESCHED) 134#define _TIF_NEED_RESCHED (1 << TIF_NEED_RESCHED)
136#define _TIF_SINGLESTEP (1 << TIF_SINGLESTEP) 135#define _TIF_SINGLESTEP (1 << TIF_SINGLESTEP)
137#define _TIF_IRET (1 << TIF_IRET)
138#define _TIF_POLLING_NRFLAG (1 << TIF_POLLING_NRFLAG) 136#define _TIF_POLLING_NRFLAG (1 << TIF_POLLING_NRFLAG)
139#define _TIF_SYSCALL_AUDIT (1 << TIF_SYSCALL_AUDIT) 137#define _TIF_SYSCALL_AUDIT (1 << TIF_SYSCALL_AUDIT)
140#define _TIF_SECCOMP (1 << TIF_SECCOMP) 138#define _TIF_SECCOMP (1 << TIF_SECCOMP)
@@ -184,6 +182,7 @@ static inline bool test_and_clear_restore_sigmask(void)
184 ti->status &= ~TS_RESTORE_SIGMASK; 182 ti->status &= ~TS_RESTORE_SIGMASK;
185 return true; 183 return true;
186} 184}
185#define tsk_is_polling(t) test_tsk_thread_flag(t, TIF_POLLING_NRFLAG)
187#endif 186#endif
188 187
189#endif /* __KERNEL__ */ 188#endif /* __KERNEL__ */
diff --git a/arch/microblaze/kernel/signal.c b/arch/microblaze/kernel/signal.c
index c1220dbf87cd..3847e5b9c601 100644
--- a/arch/microblaze/kernel/signal.c
+++ b/arch/microblaze/kernel/signal.c
@@ -254,10 +254,6 @@ static int setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
254 254
255 set_fs(USER_DS); 255 set_fs(USER_DS);
256 256
257 /* the tracer may want to single-step inside the handler */
258 if (test_thread_flag(TIF_SINGLESTEP))
259 ptrace_notify(SIGTRAP);
260
261#ifdef DEBUG_SIG 257#ifdef DEBUG_SIG
262 printk(KERN_INFO "SIG deliver (%s:%d): sp=%p pc=%08lx\n", 258 printk(KERN_INFO "SIG deliver (%s:%d): sp=%p pc=%08lx\n",
263 current->comm, current->pid, frame, regs->pc); 259 current->comm, current->pid, frame, regs->pc);
@@ -315,7 +311,8 @@ handle_signal(unsigned long sig, struct k_sigaction *ka,
315 if (ret) 311 if (ret)
316 return; 312 return;
317 313
318 signal_delivered(sig, info, ka, regs, 0); 314 signal_delivered(sig, info, ka, regs,
315 test_thread_flag(TIF_SINGLESTEP));
319} 316}
320 317
321/* 318/*