- 論壇徽章:
- 0
|
以下是小弟寫的一個內核模塊,編譯時出錯,錯誤行為:
printk(KERN_ALERT"pa->_count: %lx", page_to_pfn(pa));//atomic_read(pa->_count)); //(pa - mem_map)/sizeof(struct page));
提示說:
/home/Royale/module_pro/mem_map_test.c:13: 錯誤:在指向不完全類型的指針上執(zhí)行算術運算
/home/Royale/module_pro/mem_map_test.c:13: 錯誤:在指向不完全類型的指針上執(zhí)行算術運算
代碼為:
#include<linux/kernel.h>
#include<linux/module.h>
#include<asm/uaccess.h>
#include<linux/init.h>
#include<asm-generic/memory_model.h>
extern struct page * mem_map;
static struct page * pa;
int __init init_module(void)
{
pa = alloc_page(__GFP_HIGH);
printk(KERN_ALERT"pa->_count: %lx", page_to_pfn(pa));//atomic_read(pa->_count)); //(pa - mem_map)/sizeof(struct page));
return 0;
}
void __exit cleanup_module(void)
{
__free_page(pa);
}
這是怎么回事啊?我把page_to_pfn(pa)換成atomic_read(pa->_count)就會提示:
/home/Royale/module_pro/mem_map_test.c:13: 錯誤:提領指向不完全類型的指針
這是什么錯誤,怎么解決啊? |
|