«sysfs: невозможно создать дублированное имя файла» - ошибка при insmod - PullRequest
0 голосов
/ 30 декабря 2018

Ниже приведена последовательность выполнения проблемы, я пишу новый драйвер платформы, который также создает записи sysfs

  • insmod works
  • нет чтения / записи sysfs из пользовательского пространства
  • rmmod works

  • insmod works

  • sudo bash -c "echo xxx> / sys / devices / platform / xphy / chipname"
  • rmmod работает - но не удаляет символическую ссылку / sys / bus / platform / devices / xphy -> ../../../devices/platform/xphy

  • insmod терпит неудачу - потому что - sysfs: не может создать дублирующееся имя файла '/ bus / platform / devices / xphy'

ниже не работало при вызове во время выхода из модуля / драйвера.

//sysfs_remove_link(&device->dev.kobj, "xphy");
//sysfs_remove_link(&device->dev.kobj, "bus/platform/devices/xphy");
ks = bus_get_kset(device->dev.bus);
ko = kset_find_obj(ks, "xphy");
sysfs_remove_link(ko, "xphy");
ko = kset_find_obj(bus_get_kset(device->dev.bus), "xphy");
if (ko) {
    printk(KERN_DEBUG "dereferencing xphy sysfs kernel object!\n");
    kobject_put(ko);
    printk(KERN_DEBUG "deleting xphy sysfs kernel object!\n");
    kobject_del(ko);
}
...