Lines Matching defs:kargs
2892 static noinline int copy_clone_args_from_user(struct kernel_clone_args *kargs,
2898 pid_t *kset_tid = kargs->set_tid;
2936 *kargs = (struct kernel_clone_args){
2951 (kargs->set_tid_size * sizeof(pid_t))))
2954 kargs->set_tid = kset_tid;
2961 * @kargs: kernel clone args
2967 static inline bool clone3_stack_valid(struct kernel_clone_args *kargs)
2969 if (kargs->stack == 0) {
2970 if (kargs->stack_size > 0)
2973 if (kargs->stack_size == 0)
2976 if (!access_ok((void __user *)kargs->stack, kargs->stack_size))
2980 kargs->stack += kargs->stack_size;
2987 static bool clone3_args_valid(struct kernel_clone_args *kargs)
2990 if (kargs->flags &
3000 if (kargs->flags & (CLONE_DETACHED | (CSIGNAL & (~CLONE_NEWTIME))))
3003 if ((kargs->flags & (CLONE_SIGHAND | CLONE_CLEAR_SIGHAND)) ==
3007 if ((kargs->flags & (CLONE_THREAD | CLONE_PARENT)) &&
3008 kargs->exit_signal)
3011 if (!clone3_stack_valid(kargs))
3032 struct kernel_clone_args kargs;
3040 kargs.set_tid = set_tid;
3042 err = copy_clone_args_from_user(&kargs, uargs, size);
3046 if (!clone3_args_valid(&kargs))
3049 return kernel_clone(&kargs);