2009-01-13 23:27:48

by Ben Dooks

[permalink] [raw]
Subject: driver creating directories under a device entry

I have a driver which uses sysfs_create_dir() to create a set of
directories under the device sysfs directory to bundle up attributes
that are added common for each sub-part of the device.

Firstly, is this considered a problem

Secondly, sysfs_create_dir() is not exported so the driver cannot
currently be built as a module. Would a patch to export sysfs_create_dir
be acceptable?

--
Ben ([email protected], http://www.fluff.org/)

'a smiley only costs 4 bytes'


2009-01-13 23:42:43

by Greg KH

[permalink] [raw]
Subject: Re: driver creating directories under a device entry

On Tue, Jan 13, 2009 at 11:27:34PM +0000, Ben Dooks wrote:
> I have a driver which uses sysfs_create_dir() to create a set of
> directories under the device sysfs directory to bundle up attributes
> that are added common for each sub-part of the device.
>
> Firstly, is this considered a problem

Yes and no.

> Secondly, sysfs_create_dir() is not exported so the driver cannot
> currently be built as a module. Would a patch to export sysfs_create_dir
> be acceptable?

No :)

The problem is, you are probably creating these attributes _after_
userspace has been notified that the device is present, right? So that
causes a not-so-nice race.

To do this properly, use an attribute group, name it (that will cause it
to show up in a subdirectory), attach it to the device, and then it will
be created automatically when the device is registered with the driver
core, at the proper time to then notify userspace that the device, and
all of its attributes, are present.

Does this help?

thanks,

greg k-h