3

我有一个嵌入式系统,并且我为硬盘控制器开发了一个设备驱动程序。当我使用 insmod 插入驱动程序时,出现以下错误。

警告:在 fs/sysfs/dir.c:455 sysfs_add_one+0xb0/0xdc() sysfs:无法创建重复的文件名 '/block/xsa'

Call Trace:
[<c00040ac>] microblaze_unwind+0x54/0x78
[<c0003db8>] show_stack+0x120/0x158
[<c0003df8>] dump_stack+0x8/0x20
[<c000fd40>] warn_slowpath_common+0x80/0xbc
[<c000fe08>] warn_slowpath_fmt+0x28/0x40
[<c00d51dc>] sysfs_add_one+0xa4/0xdc
[<c00d5cd4>] create_dir+0x80/0x100
[<c00d5fa0>] sysfs_create_dir+0x138/0x16c
[<c01586cc>] kobject_add_internal+0xc4/0x1dc
[<c0158920>] kobject_add_varg+0x4c/0x78
[<c0158e88>] kobject_add+0x68/0x80
[<c0187420>] device_add+0xac/0x56c
[<c014da98>] register_disk+0x48/0x1b8
[<c014e014>] add_disk+0x110/0x2c8
[<c805c7c4>] bean_of_probe+0x25c/0x324 [bean]
[<c018b9d0>] platform_drv_probe+0xc/0x24
[<c018a2c4>] driver_probe_device+0xe0/0x1b8
[<c018a61c>] __driver_attach+0x68/0xb4
[<c01890d4>] bus_for_each_dev+0x50/0xa8
[<c018a080>] driver_attach+0x18/0x30
[<c0189bac>] bus_add_driver+0xc4/0x2a0
[<c018aad8>] driver_register+0xf0/0x1ac
[<c018bd00>] platform_driver_register+0x58/0x70
[<c805e050>] bean_init+0x50/0xbc [bean]
[<c00002f4>] do_one_initcall+0x11c/0x220
[<c0047504>] sys_init_module+0x84/0x200
SYSCALL

---[ end trace 56a543209f1c03c6 ]--- kobject_add_internal 对带有-EEXIST 的xsa 失败,不要尝试在同一目录中注册具有相同名称的东西。内核堆栈:

我了解它正在尝试使用已注册到紧凑型闪存卡的名称 xsa。我的问题是内核如何决定应该使用的名称?如果有人可以帮助我,因为我刚刚开始使用 Linux。

谢谢

乔恩

4

0 回答 0