【发布时间】:2010-06-17 20:34:26
【问题描述】:
我有一个可加载模块,在 Ubuntu 9.10(Linux 2.6.31-22-server)下构建时会发出有关 phys_mem_access_prot 的警告。
[664] make -C /lib/modules/`uname -r`/build M=`pwd`
make: Entering directory `/usr/src/linux-headers-2.6.31-22-server'
LD /home/chuck/dev/svd/built-in.o
CC [M] /home/chuck/dev/svd/svd.o
LD [M] /home/chuck/dev/svd/svd_drv.o
Building modules, stage 2.
MODPOST 1 modules
WARNING: "phys_mem_access_prot" [/home/chuck/dev/svd/svd_drv.ko] undefined!
CC /home/chuck/dev/svd/svd_drv.mod.o
LD [M] /home/chuck/dev/svd/svd_drv.ko
make: Leaving directory `/usr/src/linux-headers-2.6.31-22-server'
该函数确实显示在 System.map-2.6.31-22-server 文件中
[667] grep phys_mem_access_prot /boot/System.map-2.6.31-22-server
ffffffff8103fb40 T phys_mem_access_prot
ffffffff8103fb50 T phys_mem_access_prot_allowed
驱动程序加载,所以我很困惑为什么modpost 不高兴。这是因为内核没有使用EXPORT_SYMBOL() 导出函数导致的问题吗?
【问题讨论】:
标签: linux-kernel linux-device-driver