Commit 714acdbd authored by Christian Brauner's avatar Christian Brauner

arch: rename copy_thread_tls() back to copy_thread()

Now that HAVE_COPY_THREAD_TLS has been removed, rename copy_thread_tls()
back simply copy_thread(). It's a simpler name, and doesn't imply that only
tls is copied here. This finishes an outstanding chunk of internal process
creation work since we've added clone3().

Cc: linux-arch@vger.kernel.org
Acked-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>A
Acked-by: default avatarStafford Horne <shorne@gmail.com>
Acked-by: default avatarGreentime Hu <green.hu@gmail.com>
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>A
Reviewed-by: default avatarKees Cook <keescook@chromium.org>
Signed-off-by: default avatarChristian Brauner <christian.brauner@ubuntu.com>
parent 140c8180
...@@ -233,9 +233,9 @@ release_thread(struct task_struct *dead_task) ...@@ -233,9 +233,9 @@ release_thread(struct task_struct *dead_task)
/* /*
* Copy architecture-specific thread state * Copy architecture-specific thread state
*/ */
int copy_thread_tls(unsigned long clone_flags, unsigned long usp, int copy_thread(unsigned long clone_flags, unsigned long usp,
unsigned long kthread_arg, struct task_struct *p, unsigned long kthread_arg, struct task_struct *p,
unsigned long tls) unsigned long tls)
{ {
extern void ret_from_fork(void); extern void ret_from_fork(void);
extern void ret_from_kernel_thread(void); extern void ret_from_kernel_thread(void);
......
...@@ -173,8 +173,9 @@ asmlinkage void ret_from_fork(void); ...@@ -173,8 +173,9 @@ asmlinkage void ret_from_fork(void);
* | user_r25 | * | user_r25 |
* ------------------ <===== END of PAGE * ------------------ <===== END of PAGE
*/ */
int copy_thread_tls(unsigned long clone_flags, unsigned long usp, int copy_thread(unsigned long clone_flags, unsigned long usp,
unsigned long kthread_arg, struct task_struct *p, unsigned long tls) unsigned long kthread_arg, struct task_struct *p,
unsigned long tls)
{ {
struct pt_regs *c_regs; /* child's pt_regs */ struct pt_regs *c_regs; /* child's pt_regs */
unsigned long *childksp; /* to unwind out of __switch_to() */ unsigned long *childksp; /* to unwind out of __switch_to() */
......
...@@ -225,9 +225,8 @@ void release_thread(struct task_struct *dead_task) ...@@ -225,9 +225,8 @@ void release_thread(struct task_struct *dead_task)
asmlinkage void ret_from_fork(void) __asm__("ret_from_fork"); asmlinkage void ret_from_fork(void) __asm__("ret_from_fork");
int int copy_thread(unsigned long clone_flags, unsigned long stack_start,
copy_thread_tls(unsigned long clone_flags, unsigned long stack_start, unsigned long stk_sz, struct task_struct *p, unsigned long tls)
unsigned long stk_sz, struct task_struct *p, unsigned long tls)
{ {
struct thread_info *thread = task_thread_info(p); struct thread_info *thread = task_thread_info(p);
struct pt_regs *childregs = task_pt_regs(p); struct pt_regs *childregs = task_pt_regs(p);
......
...@@ -375,7 +375,7 @@ int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src) ...@@ -375,7 +375,7 @@ int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src)
asmlinkage void ret_from_fork(void) asm("ret_from_fork"); asmlinkage void ret_from_fork(void) asm("ret_from_fork");
int copy_thread_tls(unsigned long clone_flags, unsigned long stack_start, int copy_thread(unsigned long clone_flags, unsigned long stack_start,
unsigned long stk_sz, struct task_struct *p, unsigned long tls) unsigned long stk_sz, struct task_struct *p, unsigned long tls)
{ {
struct pt_regs *childregs = task_pt_regs(p); struct pt_regs *childregs = task_pt_regs(p);
......
...@@ -104,9 +104,9 @@ void start_thread(struct pt_regs *regs, unsigned int pc, unsigned long usp) ...@@ -104,9 +104,9 @@ void start_thread(struct pt_regs *regs, unsigned int pc, unsigned long usp)
/* /*
* Copy a new thread context in its stack. * Copy a new thread context in its stack.
*/ */
int copy_thread_tls(unsigned long clone_flags, unsigned long usp, int copy_thread(unsigned long clone_flags, unsigned long usp,
unsigned long ustk_size, struct task_struct *p, unsigned long ustk_size, struct task_struct *p,
unsigned long tls) unsigned long tls)
{ {
struct pt_regs *childregs; struct pt_regs *childregs;
......
...@@ -40,7 +40,7 @@ unsigned long thread_saved_pc(struct task_struct *tsk) ...@@ -40,7 +40,7 @@ unsigned long thread_saved_pc(struct task_struct *tsk)
return sw->r15; return sw->r15;
} }
int copy_thread_tls(unsigned long clone_flags, int copy_thread(unsigned long clone_flags,
unsigned long usp, unsigned long usp,
unsigned long kthread_arg, unsigned long kthread_arg,
struct task_struct *p, struct task_struct *p,
......
...@@ -105,9 +105,8 @@ void flush_thread(void) ...@@ -105,9 +105,8 @@ void flush_thread(void)
{ {
} }
int copy_thread_tls(unsigned long clone_flags, unsigned long usp, int copy_thread(unsigned long clone_flags, unsigned long usp,
unsigned long topstk, struct task_struct *p, unsigned long topstk, struct task_struct *p, unsigned long tls)
unsigned long tls)
{ {
struct pt_regs *childregs; struct pt_regs *childregs;
......
...@@ -50,8 +50,8 @@ void arch_cpu_idle(void) ...@@ -50,8 +50,8 @@ void arch_cpu_idle(void)
/* /*
* Copy architecture-specific thread state * Copy architecture-specific thread state
*/ */
int copy_thread_tls(unsigned long clone_flags, unsigned long usp, int copy_thread(unsigned long clone_flags, unsigned long usp, unsigned long arg,
unsigned long arg, struct task_struct *p, unsigned long tls) struct task_struct *p, unsigned long tls)
{ {
struct thread_info *ti = task_thread_info(p); struct thread_info *ti = task_thread_info(p);
struct hexagon_switch_stack *ss; struct hexagon_switch_stack *ss;
......
...@@ -311,7 +311,7 @@ ia64_load_extra (struct task_struct *task) ...@@ -311,7 +311,7 @@ ia64_load_extra (struct task_struct *task)
* <clone syscall> <some kernel call frames> * <clone syscall> <some kernel call frames>
* sys_clone : * sys_clone :
* _do_fork _do_fork * _do_fork _do_fork
* copy_thread_tls copy_thread_tls * copy_thread copy_thread
* *
* This means that the stack layout is as follows: * This means that the stack layout is as follows:
* *
...@@ -333,9 +333,8 @@ ia64_load_extra (struct task_struct *task) ...@@ -333,9 +333,8 @@ ia64_load_extra (struct task_struct *task)
* so there is nothing to worry about. * so there is nothing to worry about.
*/ */
int int
copy_thread_tls(unsigned long clone_flags, unsigned long user_stack_base, copy_thread(unsigned long clone_flags, unsigned long user_stack_base,
unsigned long user_stack_size, struct task_struct *p, unsigned long user_stack_size, struct task_struct *p, unsigned long tls)
unsigned long tls)
{ {
extern char ia64_ret_from_clone; extern char ia64_ret_from_clone;
struct switch_stack *child_stack, *stack; struct switch_stack *child_stack, *stack;
......
...@@ -138,9 +138,8 @@ asmlinkage int m68k_clone3(struct pt_regs *regs) ...@@ -138,9 +138,8 @@ asmlinkage int m68k_clone3(struct pt_regs *regs)
return sys_clone3((struct clone_args __user *)regs->d1, regs->d2); return sys_clone3((struct clone_args __user *)regs->d1, regs->d2);
} }
int copy_thread_tls(unsigned long clone_flags, unsigned long usp, int copy_thread(unsigned long clone_flags, unsigned long usp, unsigned long arg,
unsigned long arg, struct task_struct *p, struct task_struct *p, unsigned long tls)
unsigned long tls)
{ {
struct fork_frame { struct fork_frame {
struct switch_stack sw; struct switch_stack sw;
......
...@@ -54,8 +54,8 @@ void flush_thread(void) ...@@ -54,8 +54,8 @@ void flush_thread(void)
{ {
} }
int copy_thread_tls(unsigned long clone_flags, unsigned long usp, int copy_thread(unsigned long clone_flags, unsigned long usp, unsigned long arg,
unsigned long arg, struct task_struct *p, unsigned long tls) struct task_struct *p, unsigned long tls)
{ {
struct pt_regs *childregs = task_pt_regs(p); struct pt_regs *childregs = task_pt_regs(p);
struct thread_info *ti = task_thread_info(p); struct thread_info *ti = task_thread_info(p);
......
...@@ -119,8 +119,9 @@ int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src) ...@@ -119,8 +119,9 @@ int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src)
/* /*
* Copy architecture-specific thread state * Copy architecture-specific thread state
*/ */
int copy_thread_tls(unsigned long clone_flags, unsigned long usp, int copy_thread(unsigned long clone_flags, unsigned long usp,
unsigned long kthread_arg, struct task_struct *p, unsigned long tls) unsigned long kthread_arg, struct task_struct *p,
unsigned long tls)
{ {
struct thread_info *ti = task_thread_info(p); struct thread_info *ti = task_thread_info(p);
struct pt_regs *childregs, *regs = current_pt_regs(); struct pt_regs *childregs, *regs = current_pt_regs();
......
...@@ -149,9 +149,8 @@ void flush_thread(void) ...@@ -149,9 +149,8 @@ void flush_thread(void)
DEFINE_PER_CPU(struct task_struct *, __entry_task); DEFINE_PER_CPU(struct task_struct *, __entry_task);
asmlinkage void ret_from_fork(void) __asm__("ret_from_fork"); asmlinkage void ret_from_fork(void) __asm__("ret_from_fork");
int copy_thread_tls(unsigned long clone_flags, unsigned long stack_start, int copy_thread(unsigned long clone_flags, unsigned long stack_start,
unsigned long stk_sz, struct task_struct *p, unsigned long stk_sz, struct task_struct *p, unsigned long tls)
unsigned long tls)
{ {
struct pt_regs *childregs = task_pt_regs(p); struct pt_regs *childregs = task_pt_regs(p);
......
...@@ -100,8 +100,8 @@ void flush_thread(void) ...@@ -100,8 +100,8 @@ void flush_thread(void)
{ {
} }
int copy_thread_tls(unsigned long clone_flags, unsigned long usp, int copy_thread(unsigned long clone_flags, unsigned long usp, unsigned long arg,
unsigned long arg, struct task_struct *p, unsigned long tls) struct task_struct *p, unsigned long tls)
{ {
struct pt_regs *childregs = task_pt_regs(p); struct pt_regs *childregs = task_pt_regs(p);
struct pt_regs *regs; struct pt_regs *regs;
......
...@@ -116,7 +116,7 @@ void release_thread(struct task_struct *dead_task) ...@@ -116,7 +116,7 @@ void release_thread(struct task_struct *dead_task)
extern asmlinkage void ret_from_fork(void); extern asmlinkage void ret_from_fork(void);
/* /*
* copy_thread_tls * copy_thread
* @clone_flags: flags * @clone_flags: flags
* @usp: user stack pointer or fn for kernel thread * @usp: user stack pointer or fn for kernel thread
* @arg: arg to fn for kernel thread; always NULL for userspace thread * @arg: arg to fn for kernel thread; always NULL for userspace thread
...@@ -147,8 +147,8 @@ extern asmlinkage void ret_from_fork(void); ...@@ -147,8 +147,8 @@ extern asmlinkage void ret_from_fork(void);
*/ */
int int
copy_thread_tls(unsigned long clone_flags, unsigned long usp, copy_thread(unsigned long clone_flags, unsigned long usp, unsigned long arg,
unsigned long arg, struct task_struct *p, unsigned long tls) struct task_struct *p, unsigned long tls)
{ {
struct pt_regs *userregs; struct pt_regs *userregs;
struct pt_regs *kregs; struct pt_regs *kregs;
......
...@@ -208,7 +208,7 @@ arch_initcall(parisc_idle_init); ...@@ -208,7 +208,7 @@ arch_initcall(parisc_idle_init);
* Copy architecture-specific thread state * Copy architecture-specific thread state
*/ */
int int
copy_thread_tls(unsigned long clone_flags, unsigned long usp, copy_thread(unsigned long clone_flags, unsigned long usp,
unsigned long kthread_arg, struct task_struct *p, unsigned long tls) unsigned long kthread_arg, struct task_struct *p, unsigned long tls)
{ {
struct pt_regs *cregs = &(p->thread.regs); struct pt_regs *cregs = &(p->thread.regs);
......
...@@ -1593,7 +1593,7 @@ static void setup_ksp_vsid(struct task_struct *p, unsigned long sp) ...@@ -1593,7 +1593,7 @@ static void setup_ksp_vsid(struct task_struct *p, unsigned long sp)
/* /*
* Copy architecture-specific thread state * Copy architecture-specific thread state
*/ */
int copy_thread_tls(unsigned long clone_flags, unsigned long usp, int copy_thread(unsigned long clone_flags, unsigned long usp,
unsigned long kthread_arg, struct task_struct *p, unsigned long kthread_arg, struct task_struct *p,
unsigned long tls) unsigned long tls)
{ {
......
...@@ -101,8 +101,8 @@ int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src) ...@@ -101,8 +101,8 @@ int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src)
return 0; return 0;
} }
int copy_thread_tls(unsigned long clone_flags, unsigned long usp, int copy_thread(unsigned long clone_flags, unsigned long usp, unsigned long arg,
unsigned long arg, struct task_struct *p, unsigned long tls) struct task_struct *p, unsigned long tls)
{ {
struct pt_regs *childregs = task_pt_regs(p); struct pt_regs *childregs = task_pt_regs(p);
......
...@@ -80,8 +80,8 @@ int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src) ...@@ -80,8 +80,8 @@ int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src)
return 0; return 0;
} }
int copy_thread_tls(unsigned long clone_flags, unsigned long new_stackp, int copy_thread(unsigned long clone_flags, unsigned long new_stackp,
unsigned long arg, struct task_struct *p, unsigned long tls) unsigned long arg, struct task_struct *p, unsigned long tls)
{ {
struct fake_frame struct fake_frame
{ {
......
...@@ -115,8 +115,8 @@ EXPORT_SYMBOL(dump_fpu); ...@@ -115,8 +115,8 @@ EXPORT_SYMBOL(dump_fpu);
asmlinkage void ret_from_fork(void); asmlinkage void ret_from_fork(void);
asmlinkage void ret_from_kernel_thread(void); asmlinkage void ret_from_kernel_thread(void);
int copy_thread_tls(unsigned long clone_flags, unsigned long usp, int copy_thread(unsigned long clone_flags, unsigned long usp, unsigned long arg,
unsigned long arg, struct task_struct *p, unsigned long tls) struct task_struct *p, unsigned long tls)
{ {
struct thread_info *ti = task_thread_info(p); struct thread_info *ti = task_thread_info(p);
struct pt_regs *childregs; struct pt_regs *childregs;
......
...@@ -28,7 +28,7 @@ asmlinkage long sparc_fork(struct pt_regs *regs) ...@@ -28,7 +28,7 @@ asmlinkage long sparc_fork(struct pt_regs *regs)
ret = _do_fork(&args); ret = _do_fork(&args);
/* If we get an error and potentially restart the system /* If we get an error and potentially restart the system
* call, we're screwed because copy_thread_tls() clobbered * call, we're screwed because copy_thread() clobbered
* the parent's %o1. So detect that case and restore it * the parent's %o1. So detect that case and restore it
* here. * here.
*/ */
...@@ -53,7 +53,7 @@ asmlinkage long sparc_vfork(struct pt_regs *regs) ...@@ -53,7 +53,7 @@ asmlinkage long sparc_vfork(struct pt_regs *regs)
ret = _do_fork(&args); ret = _do_fork(&args);
/* If we get an error and potentially restart the system /* If we get an error and potentially restart the system
* call, we're screwed because copy_thread_tls() clobbered * call, we're screwed because copy_thread() clobbered
* the parent's %o1. So detect that case and restore it * the parent's %o1. So detect that case and restore it
* here. * here.
*/ */
...@@ -99,7 +99,7 @@ asmlinkage long sparc_clone(struct pt_regs *regs) ...@@ -99,7 +99,7 @@ asmlinkage long sparc_clone(struct pt_regs *regs)
ret = _do_fork(&args); ret = _do_fork(&args);
/* If we get an error and potentially restart the system /* If we get an error and potentially restart the system
* call, we're screwed because copy_thread_tls() clobbered * call, we're screwed because copy_thread() clobbered
* the parent's %o1. So detect that case and restore it * the parent's %o1. So detect that case and restore it
* here. * here.
*/ */
......
...@@ -273,9 +273,8 @@ clone_stackframe(struct sparc_stackf __user *dst, ...@@ -273,9 +273,8 @@ clone_stackframe(struct sparc_stackf __user *dst,
extern void ret_from_fork(void); extern void ret_from_fork(void);
extern void ret_from_kernel_thread(void); extern void ret_from_kernel_thread(void);
int copy_thread_tls(unsigned long clone_flags, unsigned long sp, int copy_thread(unsigned long clone_flags, unsigned long sp, unsigned long arg,
unsigned long arg, struct task_struct *p, struct task_struct *p, unsigned long tls)
unsigned long tls)
{ {
struct thread_info *ti = task_thread_info(p); struct thread_info *ti = task_thread_info(p);
struct pt_regs *childregs, *regs = current_pt_regs(); struct pt_regs *childregs, *regs = current_pt_regs();
......
...@@ -577,9 +577,8 @@ void fault_in_user_windows(struct pt_regs *regs) ...@@ -577,9 +577,8 @@ void fault_in_user_windows(struct pt_regs *regs)
* Parent --> %o0 == childs pid, %o1 == 0 * Parent --> %o0 == childs pid, %o1 == 0
* Child --> %o0 == parents pid, %o1 == 1 * Child --> %o0 == parents pid, %o1 == 1
*/ */
int copy_thread_tls(unsigned long clone_flags, unsigned long sp, int copy_thread(unsigned long clone_flags, unsigned long sp, unsigned long arg,
unsigned long arg, struct task_struct *p, struct task_struct *p, unsigned long tls)
unsigned long tls)
{ {
struct thread_info *t = task_thread_info(p); struct thread_info *t = task_thread_info(p);
struct pt_regs *regs = current_pt_regs(); struct pt_regs *regs = current_pt_regs();
......
...@@ -152,7 +152,7 @@ void fork_handler(void) ...@@ -152,7 +152,7 @@ void fork_handler(void)
userspace(&current->thread.regs.regs, current_thread_info()->aux_fp_regs); userspace(&current->thread.regs.regs, current_thread_info()->aux_fp_regs);
} }
int copy_thread_tls(unsigned long clone_flags, unsigned long sp, int copy_thread(unsigned long clone_flags, unsigned long sp,
unsigned long arg, struct task_struct * p, unsigned long tls) unsigned long arg, struct task_struct * p, unsigned long tls)
{ {
void (*handler)(void); void (*handler)(void);
......
...@@ -219,9 +219,8 @@ void release_thread(struct task_struct *dead_task) ...@@ -219,9 +219,8 @@ void release_thread(struct task_struct *dead_task)
asmlinkage void ret_from_fork(void) __asm__("ret_from_fork"); asmlinkage void ret_from_fork(void) __asm__("ret_from_fork");
asmlinkage void ret_from_kernel_thread(void) __asm__("ret_from_kernel_thread"); asmlinkage void ret_from_kernel_thread(void) __asm__("ret_from_kernel_thread");
int copy_thread_tls(unsigned long clone_flags, unsigned long stack_start, int copy_thread(unsigned long clone_flags, unsigned long stack_start,
unsigned long stk_sz, struct task_struct *p, unsigned long stk_sz, struct task_struct *p, unsigned long tls)
unsigned long tls)
{ {
struct thread_info *thread = task_thread_info(p); struct thread_info *thread = task_thread_info(p);
struct pt_regs *childregs = task_pt_regs(p); struct pt_regs *childregs = task_pt_regs(p);
......
...@@ -121,8 +121,8 @@ static int set_new_tls(struct task_struct *p, unsigned long tls) ...@@ -121,8 +121,8 @@ static int set_new_tls(struct task_struct *p, unsigned long tls)
return do_set_thread_area_64(p, ARCH_SET_FS, tls); return do_set_thread_area_64(p, ARCH_SET_FS, tls);
} }
int copy_thread_tls(unsigned long clone_flags, unsigned long sp, int copy_thread(unsigned long clone_flags, unsigned long sp, unsigned long arg,
unsigned long arg, struct task_struct *p, unsigned long tls) struct task_struct *p, unsigned long tls)
{ {
struct inactive_task_frame *frame; struct inactive_task_frame *frame;
struct fork_frame *fork_frame; struct fork_frame *fork_frame;
......
...@@ -269,7 +269,7 @@ bool unwind_next_frame(struct unwind_state *state) ...@@ -269,7 +269,7 @@ bool unwind_next_frame(struct unwind_state *state)
/* /*
* kthreads (other than the boot CPU's idle thread) have some * kthreads (other than the boot CPU's idle thread) have some
* partial regs at the end of their stack which were placed * partial regs at the end of their stack which were placed
* there by copy_thread_tls(). But the regs don't have any * there by copy_thread(). But the regs don't have any
* useful information, so we can skip them. * useful information, so we can skip them.
* *
* This user_mode() check is slightly broader than a PF_KTHREAD * This user_mode() check is slightly broader than a PF_KTHREAD
......
...@@ -201,7 +201,7 @@ int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src) ...@@ -201,7 +201,7 @@ int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src)
* involved. Much simpler to just not copy those live frames across. * involved. Much simpler to just not copy those live frames across.
*/ */
int copy_thread_tls(unsigned long clone_flags, unsigned long usp_thread_fn, int copy_thread(unsigned long clone_flags, unsigned long usp_thread_fn,
unsigned long thread_fn_arg, struct task_struct *p, unsigned long thread_fn_arg, struct task_struct *p,
unsigned long tls) unsigned long tls)
{ {
......
...@@ -65,8 +65,8 @@ extern void fork_init(void); ...@@ -65,8 +65,8 @@ extern void fork_init(void);
extern void release_task(struct task_struct * p); extern void release_task(struct task_struct * p);
extern int copy_thread_tls(unsigned long, unsigned long, unsigned long, extern int copy_thread(unsigned long, unsigned long, unsigned long,
struct task_struct *, unsigned long); struct task_struct *, unsigned long);
extern void flush_thread(void); extern void flush_thread(void);
......
...@@ -2104,8 +2104,7 @@ static __latent_entropy struct task_struct *copy_process( ...@@ -2104,8 +2104,7 @@ static __latent_entropy struct task_struct *copy_process(
retval = copy_io(clone_flags, p); retval = copy_io(clone_flags, p);
if (retval) if (retval)
goto bad_fork_cleanup_namespaces; goto bad_fork_cleanup_namespaces;
retval = copy_thread_tls(clone_flags, args->stack, args->stack_size, p, retval = copy_thread(clone_flags, args->stack, args->stack_size, p, args->tls);
args->tls);
if (retval) if (retval)
goto bad_fork_cleanup_io; goto bad_fork_cleanup_io;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment