]> git.ipfire.org Git - thirdparty/linux.git/commit
tools: ynl-gen: Allow multi-attr without nested-attributes again
authorLukas Wunner <lukas@wunner.de>
Sun, 11 May 2025 05:12:00 +0000 (07:12 +0200)
committerJakub Kicinski <kuba@kernel.org>
Tue, 13 May 2025 22:01:50 +0000 (15:01 -0700)
commit396786af1cea5ca1c041f113a6002d62f277ccb0
treec7a76cdfd44f8016b32a4ef48a693faa470b1e2b
parent4227ea91e2657f7965e34313448e9d0a2b67712e
tools: ynl-gen: Allow multi-attr without nested-attributes again

Since commit ce6cb8113c84 ("tools: ynl-gen: individually free previous
values on double set"), specifying the "multi-attr" property raises an
error unless the "nested-attributes" property is specified as well:

  File "tools/net/ynl/./pyynl/ynl_gen_c.py", line 1147, in _load_nested_sets
    child = self.pure_nested_structs.get(nested)
                                         ^^^^^^
  UnboundLocalError: cannot access local variable 'nested' where it is not associated with a value

This appears to be a bug since there are existing specs which omit
"nested-attributes" on "multi-attr" attributes.  Also, according to
Documentation/userspace-api/netlink/specs.rst, multi-attr "is the
recommended way of implementing arrays (no extra nesting)", suggesting
that nesting should even be avoided in favor of multi-attr.

Fix the indentation of the if-block introduced by the commit to avoid
the error.

Fixes: ce6cb8113c84 ("tools: ynl-gen: individually free previous values on double set")
Signed-off-by: Lukas Wunner <lukas@wunner.de>
Link: https://patch.msgid.link/d6b58684b7e5bfb628f7313e6893d0097904e1d1.1746940107.git.lukas@wunner.de
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
tools/net/ynl/pyynl/ynl_gen_c.py