- 论坛徽章:
- 0
|
本帖最后由 l4rmbr 于 2014-05-17 00:35 编辑
qchero 发表于 2014-05-16 22:14 ![]()
回复 2# l4rmbr
我指的是最新版的内核,里面有这个函数。我懒,所以没去查你这个版本有没有这个函数。
另外,我重新看了下代码,你的情况**最好**使用的是这个接口:
clear_user_highpage(struct page *page, unsigned long vaddr)
别给名字骗了,无论是否高端内存,这个函数都能正确运行。
两个参数任有一个,可得另一个。
struct *page ---> vaddr :
vaddr = page_address(page)
vaddr ---> struct *page :
int write = 1; /* 或0. 1表示你会写该页, 0表示你只读该页 */
strcut *page;
int ret;
ret = get_user_pages_fast(vaddr, 1, write, &page);
if (ret != 1) {
// 获取失败,进行错误清理操作, 具体自己去看这个函数的文档
}
其实有更底层些的接口,但鉴于你可能是要用于模块中,这些接口都是有导出的,可以在模块中安全使用。
对于第二个问题,我的看法是不会。
|
|