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/frv/include | |
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/frv/include')
-rw-r--r-- | arch/frv/include/asm/processor.h | 9 | ||||
-rw-r--r-- | arch/frv/include/asm/ptrace.h | 1 | ||||
-rw-r--r-- | arch/frv/include/asm/thread_info.h | 3 | ||||
-rw-r--r-- | arch/frv/include/asm/unistd.h | 2 |
4 files changed, 6 insertions, 9 deletions
diff --git a/arch/frv/include/asm/processor.h b/arch/frv/include/asm/processor.h index dccb9d162318..a34f309e5801 100644 --- a/arch/frv/include/asm/processor.h +++ b/arch/frv/include/asm/processor.h | |||
@@ -92,14 +92,12 @@ extern struct task_struct *__kernel_current_task; | |||
92 | 92 | ||
93 | /* | 93 | /* |
94 | * do necessary setup to start up a newly executed thread. | 94 | * do necessary setup to start up a newly executed thread. |
95 | * - need to discard the frame stacked by init() invoking the execve syscall | ||
96 | */ | 95 | */ |
97 | #define start_thread(_regs, _pc, _usp) \ | 96 | #define start_thread(_regs, _pc, _usp) \ |
98 | do { \ | 97 | do { \ |
99 | __frame = __kernel_frame0_ptr; \ | 98 | _regs->pc = (_pc); \ |
100 | __frame->pc = (_pc); \ | 99 | _regs->psr &= ~PSR_S; \ |
101 | __frame->psr &= ~PSR_S; \ | 100 | _regs->sp = (_usp); \ |
102 | __frame->sp = (_usp); \ | ||
103 | } while(0) | 101 | } while(0) |
104 | 102 | ||
105 | /* Free all resources held by a thread. */ | 103 | /* Free all resources held by a thread. */ |
@@ -107,7 +105,6 @@ static inline void release_thread(struct task_struct *dead_task) | |||
107 | { | 105 | { |
108 | } | 106 | } |
109 | 107 | ||
110 | extern asmlinkage int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags); | ||
111 | extern asmlinkage void save_user_regs(struct user_context *target); | 108 | extern asmlinkage void save_user_regs(struct user_context *target); |
112 | extern asmlinkage void *restore_user_regs(const struct user_context *target, ...); | 109 | extern asmlinkage void *restore_user_regs(const struct user_context *target, ...); |
113 | 110 | ||
diff --git a/arch/frv/include/asm/ptrace.h b/arch/frv/include/asm/ptrace.h index ef6635ca4ecb..bd534b2d0258 100644 --- a/arch/frv/include/asm/ptrace.h +++ b/arch/frv/include/asm/ptrace.h | |||
@@ -76,6 +76,7 @@ register struct pt_regs *__frame asm("gr28"); | |||
76 | #define user_mode(regs) (!((regs)->psr & PSR_S)) | 76 | #define user_mode(regs) (!((regs)->psr & PSR_S)) |
77 | #define instruction_pointer(regs) ((regs)->pc) | 77 | #define instruction_pointer(regs) ((regs)->pc) |
78 | #define user_stack_pointer(regs) ((regs)->sp) | 78 | #define user_stack_pointer(regs) ((regs)->sp) |
79 | #define current_pt_regs() (__frame) | ||
79 | 80 | ||
80 | extern unsigned long user_stack(const struct pt_regs *); | 81 | extern unsigned long user_stack(const struct pt_regs *); |
81 | #define profile_pc(regs) ((regs)->pc) | 82 | #define profile_pc(regs) ((regs)->pc) |
diff --git a/arch/frv/include/asm/thread_info.h b/arch/frv/include/asm/thread_info.h index 0ff03a33c81e..bebd7eadc772 100644 --- a/arch/frv/include/asm/thread_info.h +++ b/arch/frv/include/asm/thread_info.h | |||
@@ -94,7 +94,6 @@ register struct thread_info *__current_thread_info asm("gr15"); | |||
94 | #define TIF_NEED_RESCHED 3 /* rescheduling necessary */ | 94 | #define TIF_NEED_RESCHED 3 /* rescheduling necessary */ |
95 | #define TIF_SINGLESTEP 4 /* restore singlestep on return to user mode */ | 95 | #define TIF_SINGLESTEP 4 /* restore singlestep on return to user mode */ |
96 | #define TIF_RESTORE_SIGMASK 5 /* restore signal mask in do_signal() */ | 96 | #define TIF_RESTORE_SIGMASK 5 /* restore signal mask in do_signal() */ |
97 | #define TIF_POLLING_NRFLAG 6 /* true if poll_idle() is polling TIF_NEED_RESCHED */ | ||
98 | #define TIF_MEMDIE 7 /* is terminating due to OOM killer */ | 97 | #define TIF_MEMDIE 7 /* is terminating due to OOM killer */ |
99 | 98 | ||
100 | #define _TIF_SYSCALL_TRACE (1 << TIF_SYSCALL_TRACE) | 99 | #define _TIF_SYSCALL_TRACE (1 << TIF_SYSCALL_TRACE) |
@@ -102,8 +101,6 @@ register struct thread_info *__current_thread_info asm("gr15"); | |||
102 | #define _TIF_SIGPENDING (1 << TIF_SIGPENDING) | 101 | #define _TIF_SIGPENDING (1 << TIF_SIGPENDING) |
103 | #define _TIF_NEED_RESCHED (1 << TIF_NEED_RESCHED) | 102 | #define _TIF_NEED_RESCHED (1 << TIF_NEED_RESCHED) |
104 | #define _TIF_SINGLESTEP (1 << TIF_SINGLESTEP) | 103 | #define _TIF_SINGLESTEP (1 << TIF_SINGLESTEP) |
105 | #define _TIF_RESTORE_SIGMASK (1 << TIF_RESTORE_SIGMASK) | ||
106 | #define _TIF_POLLING_NRFLAG (1 << TIF_POLLING_NRFLAG) | ||
107 | 104 | ||
108 | /* work to do on interrupt/exception return */ | 105 | /* work to do on interrupt/exception return */ |
109 | #define _TIF_WORK_MASK \ | 106 | #define _TIF_WORK_MASK \ |
diff --git a/arch/frv/include/asm/unistd.h b/arch/frv/include/asm/unistd.h index 67f23a311db6..b6b07e55e473 100644 --- a/arch/frv/include/asm/unistd.h +++ b/arch/frv/include/asm/unistd.h | |||
@@ -372,6 +372,8 @@ | |||
372 | #define __ARCH_WANT_SYS_SIGPROCMASK | 372 | #define __ARCH_WANT_SYS_SIGPROCMASK |
373 | #define __ARCH_WANT_SYS_RT_SIGACTION | 373 | #define __ARCH_WANT_SYS_RT_SIGACTION |
374 | #define __ARCH_WANT_SYS_RT_SIGSUSPEND | 374 | #define __ARCH_WANT_SYS_RT_SIGSUSPEND |
375 | #define __ARCH_WANT_SYS_EXECVE | ||
376 | #define __ARCH_WANT_KERNEL_EXECVE | ||
375 | 377 | ||
376 | /* | 378 | /* |
377 | * "Conditional" syscalls | 379 | * "Conditional" syscalls |