如何解决mtrr_add() 函数导致“警告:“mtrr_add”[/path/to/module.ko] 未定义”
我有一个内核模块,我试图在其中使用 mtrr_add()
函数。当我编译我的代码时,我得到了 WARNING: "mtrr_add" [/path/to/module.ko] undefined!
。我发现了一条邮件列表消息:https://patchwork.ozlabs.org/patch/510277/,其中提到删除了 mtrr_add()
并替换为 arch_phys_wc_add()
。如果我理解正确,arch_phys_wc_add()
用于添加 Write Combine (WC)
类型。 mtrr_add()
是否有任何替换函数可以添加 writeback(WB)
类型?或者有什么解决方法?
我的初始化模块代码如下,
#include <asm/mtrr.h>
//#include <uapi/asm/mtrr.h>
static int __init car_init(void){
printk(KERN_INFO "car module loaded\n");
int mtrr_add_r = mtrr_add(0xf7c20000,4096,MTRR_TYPE_WRBACK,0); <-- throwing undefined warning
//int mtrr_add_r = arch_phys_wc_add(0xf7c20000,4096);
printk( KERN_ALERT "mtrr_add_r: 0x%x\n",mtrr_add_r);
set_cpus_allowed_ptr(current,&saved_cpu_mask);
return 0;
}
dmesg
显示:
module_name:未知符号 mtrr_add (err 0)
我的内核版本:Linux xxx 4.4.0-200-generic #232-Ubuntu SMP
gcc 版本:gcc (Ubuntu 5.4.0-6ubuntu1~16.04.12) 5.4.0 20160609
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。