Re: Driver core and sysfs changes for attribute groups

From: Oliver Schinagl
Date: Wed Jul 10 2013 - 16:17:44 EST


On 07/10/13 22:05, Greg Kroah-Hartman wrote:
Hi all,
Hey Greg,


Guenter and Oliver have been pointing out a few limitations of the
driver core's ability to create files properly (i.e. in a way that
doesn't race with userspace.) The driver core allows this, but it
doesn't export that ability to drivers very easily, and for binary
files, not at all.
Exactly, even the patch you supplied didn't help, as it created the binary attributes for devices, not device_drivers or platform_drivers.


So here's a set of 6 patches that I'll be queueing up to go to Linus in
time for 3.11 so that people can start using them in their driver
subsystems. It adds some new macros to make using attributes and
attribute groups easier, adds binary file capabilities to attribute
groups, and finally, lets subsystems (like platform drivers) set a
attribute group for when their device is created.
Oh, that does some like iceing on the cake.

If anyone has any problems with these patches, please let me know.

I will try this patch set immediately and report back.

Guenter, I've tweaked your original patch a bit, changing the name of
the function and putting the kernel doc comments in the correct place so
the build doesn't complain about it.

I also have a set of follow-on patches, about 50+ big so far, that goes
through the kernel and converts different drivers and subsystems to
properly use attribute groups, instead of open-coding binary files and
attributes. Those patches will be sent out later, and will be for 3.12
as they aren't needed at the moment, this infrastructure changes are
needed first.

thanks,
Thank you Greg, this is far more robust that what I cooked up (adding bin_attrs to struct device_driver. I was just going to send it to the list as well when I saw this message :)

greg k-h


Oliver
--
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/