Merge branch 'remove-ksys-mount-dup' of git://git.kernel.org/pub/scm/linux/kernel/git/brodo/linux
Pull ksys_mount() and ksys_dup() removal from Dominik Brodowski: "This small series replaces all in-kernel calls to the userspace-focused ksys_mount() and ksys_dup() with calls to kernel-centric functions: For each replacement of ksys_mount() with do_mount(), one needs to verify that the first and third parameter (char *dev_name, char *type) are strings allocated in kernelspace and that the fifth parameter (void *data) is either NULL or refers to a full page (only occurence in init/do_mounts.c::do_mount_root()). The second and fourth parameters (char *dir_name, unsigned long flags) are passed by ksys_mount() to do_mount() unchanged, and therefore do not require particular care. Moreover, instead of pretending to be userspace, the opening of /dev/console as stdin/stdout/stderr can be implemented using in-kernel functions as well. Thereby, ksys_dup() can be removed for good" [ This doesn't get rid of the special "kernel init runs with KERNEL_DS" case, but it at least removes _some_ of the users of "treat kernel pointers as user pointers for our magical init sequence". One day we'll hopefully be rid of it all, and can initialize our init_thread addr_limit to USER_DS. - Linus ] * 'remove-ksys-mount-dup' of git://git.kernel.org/pub/scm/linux/kernel/git/brodo/linux: fs: remove ksys_dup() init: unify opening /dev/console as stdin/stdout/stderr init: use do_mount() instead of ksys_mount() initrd: use do_mount() instead of ksys_mount() devtmpfs: use do_mount() instead of ksys_mount()
This commit is contained in:
@@ -359,7 +359,7 @@ static int handle_remove(const char *nodename, struct device *dev)
|
||||
* If configured, or requested by the commandline, devtmpfs will be
|
||||
* auto-mounted after the kernel mounted the root filesystem.
|
||||
*/
|
||||
int devtmpfs_mount(const char *mntdir)
|
||||
int devtmpfs_mount(void)
|
||||
{
|
||||
int err;
|
||||
|
||||
@@ -369,7 +369,7 @@ int devtmpfs_mount(const char *mntdir)
|
||||
if (!thread)
|
||||
return 0;
|
||||
|
||||
err = ksys_mount("devtmpfs", mntdir, "devtmpfs", MS_SILENT, NULL);
|
||||
err = do_mount("devtmpfs", "dev", "devtmpfs", MS_SILENT, NULL);
|
||||
if (err)
|
||||
printk(KERN_INFO "devtmpfs: error mounting %i\n", err);
|
||||
else
|
||||
@@ -394,7 +394,7 @@ static int devtmpfsd(void *p)
|
||||
*err = ksys_unshare(CLONE_NEWNS);
|
||||
if (*err)
|
||||
goto out;
|
||||
*err = ksys_mount("devtmpfs", "/", "devtmpfs", MS_SILENT, NULL);
|
||||
*err = do_mount("devtmpfs", "/", "devtmpfs", MS_SILENT, NULL);
|
||||
if (*err)
|
||||
goto out;
|
||||
ksys_chdir("/.."); /* will traverse into overmounted root */
|
||||
|
Reference in New Issue
Block a user