diff options
author | Akinobu Mita <akinobu.mita@gmail.com> | 2019-09-29 17:18:49 +0300 |
---|---|---|
committer | Pavel <pavel@ucw.cz> | 2019-11-03 19:38:14 +0300 |
commit | 11f70002213774ed233950f71ea8803fa3700aa3 (patch) | |
tree | ba8c781e79c59e15456b49b1a363a15be74955c7 /include/linux/leds.h | |
parent | a2cafdfd8cf5ad8adda6c0ce44a59f46431edf02 (diff) | |
download | linux-11f70002213774ed233950f71ea8803fa3700aa3.tar.xz |
leds: remove PAGE_SIZE limit of /sys/class/leds/<led>/trigger
Reading /sys/class/leds/<led>/trigger returns all available LED triggers.
However, the size of this file is limited to PAGE_SIZE because of the
limitation for sysfs attribute.
Enabling LED CPU trigger on systems with thousands of CPUs easily hits
PAGE_SIZE limit, and makes it impossible to see all available LED triggers
and which trigger is currently activated.
We work around it here by converting /sys/class/leds/<led>/trigger to
binary attribute, which is not limited by length. This is _not_ good
design, do not copy it.
Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Cc: "Rafael J. Wysocki" <rafael@kernel.org>
Cc: Pavel Machek <pavel@ucw.cz>
Cc: Dan Murphy <dmurphy@ti.com>A
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Pavel Machek <pavel@ucw.cz>
Diffstat (limited to 'include/linux/leds.h')
-rw-r--r-- | include/linux/leds.h | 5 |
1 files changed, 0 insertions, 5 deletions
diff --git a/include/linux/leds.h b/include/linux/leds.h index b8df71193329..0b6b6166e9ea 100644 --- a/include/linux/leds.h +++ b/include/linux/leds.h @@ -361,11 +361,6 @@ struct led_trigger { #define led_trigger_get_led(dev) ((struct led_classdev *)dev_get_drvdata((dev))) #define led_trigger_get_drvdata(dev) (led_get_trigger_data(led_trigger_get_led(dev))) -ssize_t led_trigger_store(struct device *dev, struct device_attribute *attr, - const char *buf, size_t count); -ssize_t led_trigger_show(struct device *dev, struct device_attribute *attr, - char *buf); - /* Registration functions for complex triggers */ extern int led_trigger_register(struct led_trigger *trigger); extern void led_trigger_unregister(struct led_trigger *trigger); |