diff options
author | Akinobu Mita <akinobu.mita@gmail.com> | 2019-09-29 16:18:49 +0200 |
---|---|---|
committer | Pavel <pavel@ucw.cz> | 2019-11-03 17:38:14 +0100 |
commit | 11f70002213774ed233950f71ea8803fa3700aa3 (patch) | |
tree | ba8c781e79c59e15456b49b1a363a15be74955c7 /drivers/leds/led-class.c | |
parent | leds: tlc591xx: update the maximum brightness (diff) | |
download | linux-11f70002213774ed233950f71ea8803fa3700aa3.tar.xz linux-11f70002213774ed233950f71ea8803fa3700aa3.zip |
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 'drivers/leds/led-class.c')
-rw-r--r-- | drivers/leds/led-class.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/leds/led-class.c b/drivers/leds/led-class.c index 647b1263c579..3f04334d59ee 100644 --- a/drivers/leds/led-class.c +++ b/drivers/leds/led-class.c @@ -74,13 +74,13 @@ static ssize_t max_brightness_show(struct device *dev, static DEVICE_ATTR_RO(max_brightness); #ifdef CONFIG_LEDS_TRIGGERS -static DEVICE_ATTR(trigger, 0644, led_trigger_show, led_trigger_store); -static struct attribute *led_trigger_attrs[] = { - &dev_attr_trigger.attr, +static BIN_ATTR(trigger, 0644, led_trigger_read, led_trigger_write, 0); +static struct bin_attribute *led_trigger_bin_attrs[] = { + &bin_attr_trigger, NULL, }; static const struct attribute_group led_trigger_group = { - .attrs = led_trigger_attrs, + .bin_attrs = led_trigger_bin_attrs, }; #endif |