[OpenWrt-Devel] [PATCH 1/4] mvebu: add Turris Omnia LED support
Klaus Kudielka
klaus.kudielka at gmail.com
Sat Dec 15 03:19:34 EST 2018
On 13.12.18 09:50, Bjørn Mork wrote:
> Klaus Kudielka <klaus.kudielka at gmail.com> writes:
>
>> ++ err = led_classdev_register(&client->dev, &leds[i].led_cdev);
>> ++ if (err < 0)
>> ++ goto exit;
>> ++
>> ++ err = device_create_file(leds[i].led_cdev.dev,
>> ++ &dev_attr_autonomous);
>> ++ if (err < 0) {
>> ++ dev_err(leds[i].led_cdev.dev,
>> ++ "failed to create attribute autonomous\n");
>> ++ goto exit;
>> ++ }
>> ++
>> ++ err = device_create_file(leds[i].led_cdev.dev,
>> ++ &dev_attr_color);
>> ++ if (err < 0) {
>> ++ dev_err(leds[i].led_cdev.dev,
>> ++ "failed to create attribute color\n");
>> ++ goto exit;
>> ++ }
>> +
> I believe GregKH often complains about patterns like this because of the
> userspace race it creates. Why not add the extra attributes to a group
> and point leds[i].led_cdev.groups to it instead? Then you get automatic
> attribute creation in led_classdev_register. No race and much simpler
> error handling and cleanup.
I have implemented your suggestion [1], and it seems to work in the
normal use case. I guess I'll wait some more time for other comments,
before sending patch version 2.
[1] https://github.com/kkudielka/openwrt/commits/omnia-leds-dev
Klaus
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel
More information about the openwrt-devel
mailing list