printk(KERN_ALERT "the adl_dev is to del");
cdev_del(&adl_dev.pcdev); //remove the character device
printk(KERN_ALERT "the adl_dev is del");
卸载的时候,会调用此函数:然后在dmesg命令后,找到如下相关的东西!
这个是怎么回事呢?是我那有错?还是只是一个具体流程!为什么我的其他函数,就没有这个呢?
1934.879632] the adl_dev is to del
[ 1934.879663] ------------[ cut here ]------------
[ 1934.879673] WARNING: at lib/kobject.c:595 kobject_put+0x48/0x4d()
[ 1934.879676] Hardware name:
[ 1934.879679] kobject: '(null)' (e0046bdc): is not initialized, yet kobject_put() is being called.
[ 1934.879682] Modules linked in: adlink(-) intel_agp agpgart sg [last unloaded: adlink]
[ 1934.879691] Pid: 2769, comm: rmmod Not tainted 2.6.34.1 #1
[ 1934.879694] Call Trace:
[ 1934.879701] [
[ 1934.879706] [
[ 1934.879710] [
[ 1934.879715] [
[ 1934.879719] [
[ 1934.879725] [
[ 1934.879731] [
[ 1934.879738] [
[ 1934.879745] [
[ 1934.879750] [
[ 1934.879755] [
[ 1934.879760] [
[ 1934.879765] [
[ 1934.879770] [
[ 1934.879775] [
[ 1934.879781] [
[ 1934.879787] [
[ 1934.879792] [
[ 1934.879796] ---[ end trace d58467bd0e50a9cd ]---
[ 1934.879798] the adl_dev is to del
wucongdonglai 于 2011-01-24 08:26:21发表:
2# deepwhite
是adl_dev.pcdev指向0指针了引起的,呵呵
Axflue 于 2011-01-17 20:53:23发表:
不懂帮顶
deepwhite 于 2011-01-17 19:25:50发表:
传入的数据结构中有没有初始化的 kobject 实例 ,应该是 adl_dev.pcdev.kobj ,仔细检查一下代码吧。
Kernel 没事是不会打印调用流程玩的。