Messages in this thread | | | Date | Thu, 18 Aug 2005 14:50:19 -0500 | From | Dmitry Torokhov <> | Subject | Re: [PATCH] add transport class symlink to device object |
| |
On 8/18/05, Greg KH <greg@kroah.com> wrote: > @@ -500,9 +519,13 @@ int class_device_add(struct class_device > } > > class_device_add_attrs(class_dev); > - if (class_dev->dev) > + if (class_dev->dev) { > + class_name = make_class_name(class_dev); > sysfs_create_link(&class_dev->kobj, > &class_dev->dev->kobj, "device"); > + sysfs_create_link(&class_dev->dev->kobj, &class_dev->kobj, > + class_name); > + } >
I wonder if we need to grab a reference to class_dev->dev here:
dev = device_get(class_dev->dev); if (dev) { .... }
Otherwise, if device gets unregistered/deleted before class device is deleted we'll get into trouble when removing the link since class_dev->dev will be garbage.
.. But grabbing that reference will cause pains in SCSI system which, when I looked, removed class devices from device's release function.
-- Dmitry - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |