Lines Matching refs:kargs

2831 noinline static int copy_clone_args_from_user(struct kernel_clone_args *kargs,  in copy_clone_args_from_user()  argument
2837 pid_t *kset_tid = kargs->set_tid; in copy_clone_args_from_user()
2877 *kargs = (struct kernel_clone_args){ in copy_clone_args_from_user()
2892 (kargs->set_tid_size * sizeof(pid_t)))) in copy_clone_args_from_user()
2895 kargs->set_tid = kset_tid; in copy_clone_args_from_user()
2908 static inline bool clone3_stack_valid(struct kernel_clone_args *kargs) in clone3_stack_valid() argument
2910 if (kargs->stack == 0) { in clone3_stack_valid()
2911 if (kargs->stack_size > 0) in clone3_stack_valid()
2914 if (kargs->stack_size == 0) in clone3_stack_valid()
2917 if (!access_ok((void __user *)kargs->stack, kargs->stack_size)) in clone3_stack_valid()
2921 kargs->stack += kargs->stack_size; in clone3_stack_valid()
2928 static bool clone3_args_valid(struct kernel_clone_args *kargs) in clone3_args_valid() argument
2931 if (kargs->flags & in clone3_args_valid()
2939 if (kargs->flags & (CLONE_DETACHED | (CSIGNAL & (~CLONE_NEWTIME)))) in clone3_args_valid()
2942 if ((kargs->flags & (CLONE_SIGHAND | CLONE_CLEAR_SIGHAND)) == in clone3_args_valid()
2946 if ((kargs->flags & (CLONE_THREAD | CLONE_PARENT)) && in clone3_args_valid()
2947 kargs->exit_signal) in clone3_args_valid()
2950 if (!clone3_stack_valid(kargs)) in clone3_args_valid()
2971 struct kernel_clone_args kargs; in SYSCALL_DEFINE2() local
2974 kargs.set_tid = set_tid; in SYSCALL_DEFINE2()
2976 err = copy_clone_args_from_user(&kargs, uargs, size); in SYSCALL_DEFINE2()
2980 if (!clone3_args_valid(&kargs)) in SYSCALL_DEFINE2()
2983 return kernel_clone(&kargs); in SYSCALL_DEFINE2()