diff --git a/sys/compat/linuxkpi/common/include/linux/device.h b/sys/compat/linuxkpi/common/include/linux/device.h --- a/sys/compat/linuxkpi/common/include/linux/device.h +++ b/sys/compat/linuxkpi/common/include/linux/device.h @@ -458,7 +458,10 @@ if (dev->devt == 0) dev->devt = makedev(0, device_get_unit(dev->bsddev)); } - kobject_add(&dev->kobj, &dev->class->kobj, dev_name(dev)); + if (dev->parent != NULL) + kobject_add(&dev->kobj, &dev->parent->kobj, dev_name(dev)); + else + kobject_add(&dev->kobj, &dev->class->kobj, dev_name(dev)); if (dev->groups) return (sysfs_create_groups(&dev->kobj, dev->groups));