the "sys_mount" function allocates a block of memory whose size is 4096 bytes through buddy system(__get_free_page) or slab system(kmem_cache_alloc) for every parameters, then copy the parameters to the memory from user space. the copy process of parameters is accomplished in "getname" and "copy_mount_options" functions. now, i want to simplify the function according to the following method, but i don't know wether there is some potential risk. 1. don't to allocates memory in kernel space for each parameter. 2. sys_mount refer to the parameter through the memory pointer passed directly. kernel version: 2.6.14 hard platform: ARM926ejs the modified source of "sys_mount" function as following: asmlinkage long sys_mount(char __user * dev_name, char __user * dir_name, char __user * type, unsigned long flags, void __user * data) { int retval; unsigned long data_page; unsigned long type_page; unsigned long dev_page; char *dir_page; /* the first modification, comment the following code. retval = copy_mount_options (type, &type_page); if (retval < 0) return retval; dir_page = getname(dir_name); retval = PTR_ERR(dir_page); if (IS_ERR(dir_page)) goto out1; retval = copy_mount_options (dev_name, &dev_page); if (retval < 0) goto out2; retval = copy_mount_options (data, &data_page); if (retval < 0) goto out3; */ lock_kernel(); /* the second modification, refer to the parameters by memory pointer inputed directly */ #if 0 retval = do_mount((char*)dev_page, dir_page, (char*)type_page, flags, (void*)data_page); #else retval = do_mount((char*)dev_name, dir_name, (char*)type, flags, (void*)data); #endif unlock_kernel(); /* free_page(data_page); out3: free_page(dev_page); out2: putname(dir_page); out1: free_page(type_page); */ return retval; } if there is no potential risk, the speed of "mount" command would be improved greatly. Tell me plz if there is problem. thax. -- To unsubscribe from this list: send an email with "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx Please read the FAQ at http://kernelnewbies.org/FAQ