Hello, I came across the function: call_usermodehelper This can be used to invoke exec a binary from the kernel space. It ultimately calls: call_usermodehelper_exec_async Which internally does: retval = do_execve ( getname_kernel ( sub_info->path ),(const char __user *const __user *)sub_info->argv ,(const char __user *const __user *)sub_info->envp ); This function works as expected and a new thread is spawned. Now when I try to directly call do_execve within my module by passing the required arguments, I am getting -EFAULT error. This is happening in this function: count(argv, MAX_ARG_STRINGS) What am I missing here? Thank you Hemanth