问题描述
static struct kprobe kp={.symbol_name = "kallsyms_lookup_name",};
int get_kallsyms_lookup_name(void)
{
int ret = register_kprobe(&kp);
if(ret < 0){
printk("[err] %s. register_kprobe Failed,ret:%d\n",__FUNCTION__,ret);
return ret;
}
printk("[info] %s. kprobe at addr:%p,kp.addr,ret);
orig_kallsyms_lookup_name = (kallsyms_lookup_name_t)(void*)kp.addr;
unregister_kprobe(&kp);
return ret;
}
static int __init init(void)
{
if(get_kallsyms_lookup_name() < 0)
{
printk("[err] %s Failed!\n",__FUNCTION__);
return -1;
}
___vmalloc_node_range = (void *)orig_kallsyms_lookup_name("__vmalloc_node");
if(!___vmalloc_node_range)
printk("error");
return -1;
}
我需要它来获得vmalloc_node_range
,但它只得到vmalloc_node
。
#define START _AC(0xffffffffa0000000,UL)
#define END _AC(0xffffffffff000000,UL)
我必须为我的模块请求START
和END
之间的内存。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)