转载地址:http://blog.youkuaiyun.com/lu_xiaoji/article/details/50324981
用户态到内核态的拷贝,都会涉及到两个必要的步骤:
* void *memdup_user(const void __user *src, size_t len)
* {
* void *p;
*
* p = kmalloc_track_caller(len, GFP_KERNEL); //内核态分配个空间
* if (!p)
* return ERR_PTR(-ENOMEM);
*
* if (copy_from_user(p, src, len)) { //从用户态拷过来
* kfree(p);
* return ERR_PTR(-EFAULT);
* }
*
* return p; //返回内核态缓存区指针
* }
memdup_user()函数
最新推荐文章于 2024-05-09 23:45:00 发布