mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-04-02 04:24:05 +00:00
fork: remove do_fork()
Now that all architectures have been switched to use _do_fork() and the new struct kernel_clone_args calling convention we can remove the legacy do_fork() helper completely. The calling convention used to be brittle and do_fork() didn't buy us anything. The only calling convention accepted should be based on struct kernel_clone_args going forward. It's cleaner and uniform. Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Ingo Molnar <mingo@kernel.org> Cc: Al Viro <viro@zeniv.linux.org.uk> Cc: "Matthew Wilcox (Oracle)" <willy@infradead.org> Cc: "Peter Zijlstra (Intel)" <peterz@infradead.org> Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
This commit is contained in:
parent
adc7092e4c
commit
ff2a91127b
2 changed files with 1 additions and 25 deletions
|
@ -96,7 +96,6 @@ extern void exit_files(struct task_struct *);
|
||||||
extern void exit_itimers(struct signal_struct *);
|
extern void exit_itimers(struct signal_struct *);
|
||||||
|
|
||||||
extern long _do_fork(struct kernel_clone_args *kargs);
|
extern long _do_fork(struct kernel_clone_args *kargs);
|
||||||
extern long do_fork(unsigned long, unsigned long, unsigned long, int __user *, int __user *);
|
|
||||||
struct task_struct *fork_idle(int);
|
struct task_struct *fork_idle(int);
|
||||||
struct mm_struct *copy_init_mm(void);
|
struct mm_struct *copy_init_mm(void);
|
||||||
extern pid_t kernel_thread(int (*fn)(void *), void *arg, unsigned long flags);
|
extern pid_t kernel_thread(int (*fn)(void *), void *arg, unsigned long flags);
|
||||||
|
|
|
@ -2493,29 +2493,6 @@ long _do_fork(struct kernel_clone_args *args)
|
||||||
return nr;
|
return nr;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef CONFIG_HAVE_COPY_THREAD_TLS
|
|
||||||
/* For compatibility with architectures that call do_fork directly rather than
|
|
||||||
* using the syscall entry points below. */
|
|
||||||
long do_fork(unsigned long clone_flags,
|
|
||||||
unsigned long stack_start,
|
|
||||||
unsigned long stack_size,
|
|
||||||
int __user *parent_tidptr,
|
|
||||||
int __user *child_tidptr)
|
|
||||||
{
|
|
||||||
struct kernel_clone_args args = {
|
|
||||||
.flags = (lower_32_bits(clone_flags) & ~CSIGNAL),
|
|
||||||
.pidfd = parent_tidptr,
|
|
||||||
.child_tid = child_tidptr,
|
|
||||||
.parent_tid = parent_tidptr,
|
|
||||||
.exit_signal = (lower_32_bits(clone_flags) & CSIGNAL),
|
|
||||||
.stack = stack_start,
|
|
||||||
.stack_size = stack_size,
|
|
||||||
};
|
|
||||||
|
|
||||||
return _do_fork(&args);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Create a kernel thread.
|
* Create a kernel thread.
|
||||||
*/
|
*/
|
||||||
|
@ -2923,7 +2900,7 @@ static int unshare_fd(unsigned long unshare_flags, struct files_struct **new_fdp
|
||||||
/*
|
/*
|
||||||
* unshare allows a process to 'unshare' part of the process
|
* unshare allows a process to 'unshare' part of the process
|
||||||
* context which was originally shared using clone. copy_*
|
* context which was originally shared using clone. copy_*
|
||||||
* functions used by do_fork() cannot be used here directly
|
* functions used by _do_fork() cannot be used here directly
|
||||||
* because they modify an inactive task_struct that is being
|
* because they modify an inactive task_struct that is being
|
||||||
* constructed. Here we are modifying the current, active,
|
* constructed. Here we are modifying the current, active,
|
||||||
* task_struct.
|
* task_struct.
|
||||||
|
|
Loading…
Add table
Reference in a new issue