Lines Matching refs:kargs
2405 bool legacy_clone_args_valid(const struct kernel_clone_args *kargs) in legacy_clone_args_valid() argument
2408 if ((kargs->flags & CLONE_PIDFD) && in legacy_clone_args_valid()
2409 (kargs->flags & CLONE_PARENT_SETTID)) in legacy_clone_args_valid()
2526 noinline static int copy_clone_args_from_user(struct kernel_clone_args *kargs, in copy_clone_args_from_user() argument
2550 *kargs = (struct kernel_clone_args){ in copy_clone_args_from_user()
2572 static inline bool clone3_stack_valid(struct kernel_clone_args *kargs) in clone3_stack_valid() argument
2574 if (kargs->stack == 0) { in clone3_stack_valid()
2575 if (kargs->stack_size > 0) in clone3_stack_valid()
2578 if (kargs->stack_size == 0) in clone3_stack_valid()
2581 if (!access_ok((void __user *)kargs->stack, kargs->stack_size)) in clone3_stack_valid()
2585 kargs->stack += kargs->stack_size; in clone3_stack_valid()
2592 static bool clone3_args_valid(struct kernel_clone_args *kargs) in clone3_args_valid() argument
2598 if (kargs->flags & ~CLONE_LEGACY_FLAGS) in clone3_args_valid()
2605 if (kargs->flags & (CLONE_DETACHED | CSIGNAL)) in clone3_args_valid()
2608 if ((kargs->flags & (CLONE_THREAD | CLONE_PARENT)) && in clone3_args_valid()
2609 kargs->exit_signal) in clone3_args_valid()
2612 if (!clone3_stack_valid(kargs)) in clone3_args_valid()
2633 struct kernel_clone_args kargs; in SYSCALL_DEFINE2() local
2635 err = copy_clone_args_from_user(&kargs, uargs, size); in SYSCALL_DEFINE2()
2639 if (!clone3_args_valid(&kargs)) in SYSCALL_DEFINE2()
2642 return _do_fork(&kargs); in SYSCALL_DEFINE2()