Lines Matching refs:info
60 int umd_load_blob(struct umd_info *info, const void *data, size_t len) in umd_load_blob() argument
64 if (WARN_ON_ONCE(info->wd.dentry || info->wd.mnt)) in umd_load_blob()
67 mnt = blob_to_mnt(data, len, info->driver_name); in umd_load_blob()
71 info->wd.mnt = mnt; in umd_load_blob()
72 info->wd.dentry = mnt->mnt_root; in umd_load_blob()
82 int umd_unload_blob(struct umd_info *info) in umd_unload_blob() argument
84 if (WARN_ON_ONCE(!info->wd.mnt || in umd_unload_blob()
85 !info->wd.dentry || in umd_unload_blob()
86 info->wd.mnt->mnt_root != info->wd.dentry)) in umd_unload_blob()
89 kern_unmount(info->wd.mnt); in umd_unload_blob()
90 info->wd.mnt = NULL; in umd_unload_blob()
91 info->wd.dentry = NULL; in umd_unload_blob()
96 static int umd_setup(struct subprocess_info *info, struct cred *new) in umd_setup() argument
98 struct umd_info *umd_info = info->data; in umd_setup()
137 static void umd_cleanup(struct subprocess_info *info) in umd_cleanup() argument
139 struct umd_info *umd_info = info->data; in umd_cleanup()
142 if (info->retval) in umd_cleanup()
150 void umd_cleanup_helper(struct umd_info *info) in umd_cleanup_helper() argument
152 fput(info->pipe_to_umh); in umd_cleanup_helper()
153 fput(info->pipe_from_umh); in umd_cleanup_helper()
154 put_pid(info->tgid); in umd_cleanup_helper()
155 info->tgid = NULL; in umd_cleanup_helper()
169 int fork_usermode_driver(struct umd_info *info) in fork_usermode_driver() argument
172 const char *argv[] = { info->driver_name, NULL }; in fork_usermode_driver()
175 if (WARN_ON_ONCE(info->tgid)) in fork_usermode_driver()
179 sub_info = call_usermodehelper_setup(info->driver_name, in fork_usermode_driver()
181 umd_setup, umd_cleanup, info); in fork_usermode_driver()