Subject: Re: linux-next: build warning after merge of the leds-lj tree

From: Jonathan Corbet <[email-masked]>
Date: Thu, 08 Feb 2024 16:20:20 -0700

Stephen Rothwell <[email-masked]> writes:

> Hi Florian,
>
> On Mon, 08 Jan 2024 08:47:07 +0100 Florian Eckert <[email-masked]> wrote:
>>
>> Hello Stephen,
>> 
>> thanks for your hint
>> 
>> On 2024-01-05 07:33, Stephen Rothwell wrote:
>> > Hi all,
>> > 
>> > After merging the leds-lj tree, today's linux-next build (htmldocs)
>> > produced this warning:
>> > 
>> > Warning: /sys/class/leds/<led>/rx is defined 2 times:
>> > Documentation/ABI/testing/sysfs-class-led-trigger-tty:7
>> > Documentation/ABI/testing/sysfs-class-led-trigger-netdev:49
>> > Warning: /sys/class/leds/<led>/tx is defined 2 times:
>> > Documentation/ABI/testing/sysfs-class-led-trigger-tty:15
>> > Documentation/ABI/testing/sysfs-class-led-trigger-netdev:34  
>> 
>> The behavior of the tty trigger can be controlled via the Rx and Tx file.
>> If a value is set in Rx or Tx, the LED flashes when data is transmitted in
>> this direction. The same behavior is used for the netdev trigger.
>> I have therefore used the same pattern for the new tty trigger as well.
>> 
>> I didn't know that the names have to be unique!
>> 
>> I'm a bit at a loss as to what to do now. Should I put a prefix "tty_"
>> in front of the names so that we have "tty_rx", "tty_tx"?
>> 
>> If we do it this way, however, the general question arises as to whether
>> we do have to use a prefix everywhere! If new triggers are added, then the
>> names for a config file are already used up and anyone who then wants to use
>> the same name for an other trigger with the same config file because it describe
>> the same function must then work with a prefix!
>
> I think this is only a problem with the documentation system, not the
> actual sysfs file naming.  Maybe just adding a uniquifying bit to the
> "<led>" part will solve it.  Or maybe we need the tooling to be taught
> about placeholders in sysfs names (or maybe there is already a way).

So I finally remembered to look at this when I had a chance to...  yes,
it wants each ABI entry to be unique, and the ones listed here are not.
I *think* the easiest answer is to take a line like:

  What:		/sys/class/leds/<led>/rx

and turn it into something like:

  What:		/sys/class/leds/<netdev-led>/rx

...that makes the warning go away and, I think, conveys the information
just as well.  A bit kludgy, perhaps, but I don't really see anything
else there that could be used to disambiguate the names automatically.

Thanks,

jon