Linux kernel linux API的set_memory_uc()函数

Linux kernel linux API的set_memory_uc()函数,linux-kernel,Linux Kernel,我从用户空间中知道一些虚拟地址,我想取消缓存该空间。我尝试在内核模块中使用API集合\内存\ uc 我查看了内核代码,发现这个API接受虚拟地址作为第一个参数,但在这个API中它使用_pa()将其转换为pa。然而,_pa()只对内核空间虚拟地址有效,对吗?所以我想知道我是否可以使用set_memory_uc和用户空间虚拟地址作为参数 我所期望的是这样一个函数: uncache(VA)VA是一个用户空间虚拟地址,此函数根据虚拟地址取消缓存一页(我将首先锁定该页) 谢谢大家! 这已经很老了,但我发现

我从用户空间中知道一些虚拟地址,我想取消缓存该空间。我尝试在内核模块中使用API集合\内存\ uc

我查看了内核代码,发现这个API接受虚拟地址作为第一个参数,但在这个API中它使用_pa()将其转换为pa。然而,_pa()只对内核空间虚拟地址有效,对吗?所以我想知道我是否可以使用set_memory_uc和用户空间虚拟地址作为参数

我所期望的是这样一个函数:

uncache(VA)VA是一个用户空间虚拟地址,此函数根据虚拟地址取消缓存一页(我将首先锁定该页)


谢谢大家!

这已经很老了,但我发现
\uu pa
只对内核线性地址有效。所有逻辑地址都是虚拟地址,但反过来不一定正确。看见