Re: [PATCH] add transport class symlink to device object

From: Dmitry Torokhov
Date: Thu Aug 18 2005 - 14:50:51 EST


On 8/18/05, Greg KH <greg@xxxxxxxxx> 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@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/