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/microblaze | |
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/microblaze')
-rw-r--r-- | arch/microblaze/include/asm/thread_info.h | 3 | ||||
-rw-r--r-- | arch/microblaze/kernel/signal.c | 7 |
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 | /* |