sysfs permissions on dynamic attributes (led delay_on and delay_off)

From: Colin Cross
Date: Fri Jul 20 2012 - 20:46:58 EST


I'm trying to use the standard ledtrig-timer.c code to handle led
blinking for notifications on an Android device, and I'm hitting some
issues with setting permissions on the dynamically created delay_on
and delay_off attributes. For most sysfs files, we have userspace
uevent parser that watches for device add notifications and
chowns/chmods attributes. This doesn't work for delay_on and
delay_off, because they are created later, when "timer" is written to
the trigger attribute. There is no uevent when the new files are
created, and sysfs doesn't support inotify, so I don't see any way to
receive an event to set the permissions. This issue exists any time
that device_create_file is called after device_add.

What is the appropriate way to get an event to set the permissions?
Add inotify support for sysfs file creation? Send a KOBJ_CHANGE
uevent in device_create_file? Send a KOBJ_CHANGE uevent from the
driver after calling device_create_file? Dynamically create a timer
device under /sys/class/leds/<led> so a new add uevent gets sent?
Promote blinking to be a core led feature instead of a trigger, so the
files are always present?
--
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/