今天编译一个简单的驱动,但第一次insmod 时一切正常,然后我rmmod 再次加载同一个驱动时出问题啦
如下
[root@myself /]#cd lx/
[root@myself /lx]#insmod button.ko
buttoninit
[root@myself /lx]#rmmod button.ko
[root@myself /lx]#insmod button.ko
------------[ cut here ]------------
WARNING: at fs/sysfs/dir.c:487 sysfs_add_one+0x68/0x90()
sysfs: cannot create duplicate filename '/class/button'
Modules linked in: button(+) [last unloaded: button]
[<c002b700>] (unwind_backtrace+0x0/0xdc) from [<c004454c>] (warn_slowpath_common+0x44/0x5c)
[<c004454c>] (warn_slowpath_common+0x44/0x5c) from [<c004459c>] (warn_slowpath_fmt+0x24/0x30)
[<c004459c>] (warn_slowpath_fmt+0x24/0x30) from [<c00ca018>] (sysfs_add_one+0x68/0x90)
[<c00ca018>] (sysfs_add_one+0x68/0x90) from [<c00ca5a8>] (create_dir+0x48/0x9c)
[<c00ca5a8>] (create_dir+0x48/0x9c) from [<c00ca630>] (sysfs_create_dir+0x34/0x50)
[<c00ca630>] (sysfs_create_dir+0x34/0x50) from [<c01340ac>] (kobject_add_internal+0xb8/0x18c)
[<c01340ac>] (kobject_add_internal+0xb8/0x18c) from [<c01341a0>] (kset_register+0x20/0x38)
[<c01341a0>] (kset_register+0x20/0x38) from [<c0177418>] (__class_register+0xb4/0x188)
[<c0177418>] (__class_register+0xb4/0x188) from [<c017752c>] (__class_create+0x40/0x68)
[<c017752c>] (__class_create+0x40/0x68) from [<bf009040>] (button_init+0x40/0x88 [button])
[<bf009040>] (button_init+0x40/0x88 [button]) from [<c00252a0>] (do_one_initcall+0x58/0x198)
[<c00252a0>] (do_one_initcall+0x58/0x198) from [<c00648e8>] (sys_init_module+0x8c/0x18c)
[<c00648e8>] (sys_init_module+0x8c/0x18c) from [<c0025d60>] (ret_fast_syscall+0x0/0x2c)
---[ end trace 84efe65d1bfe689b ]---
kobject_add_internal failed for button with -EEXIST, don't try to register things with the same name in the same directory.
[<c002b700>] (unwind_backtrace+0x0/0xdc) from [<c0134138>] (kobject_add_internal+0x144/0x18c)
[<c0134138>] (kobject_add_internal+0x144/0x18c) from [<c01341a0>] (kset_register+0x20/0x38)
[<c01341a0>] (kset_register+0x20/0x38) from [<c0177418>] (__class_register+0xb4/0x188)
[<c0177418>] (__class_register+0xb4/0x188) from [<c017752c>] (__class_create+0x40/0x68)
[<c017752c>] (__class_create+0x40/0x68) from [<bf009040>] (button_init+0x40/0x88 [button])
[<bf009040>] (button_init+0x40/0x88 [button]) from [<c00252a0>] (do_one_initcall+0x58/0x198)
[<c00252a0>] (do_one_initcall+0x58/0x198) from [<c00648e8>] (sys_init_module+0x8c/0x18c)
[<c00648e8>] (sys_init_module+0x8c/0x18c) from [<c0025d60>] (ret_fast_syscall+0x0/0x2c)
buttoninit
[root@myself /lx]#
请大侠指点一下