tools: ynl-gen: Allow multi-attr without nested-attributes again
Since commitce6cb8113c("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:ce6cb8113c("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>
This commit is contained in:
committed by
Jakub Kicinski
parent
4227ea91e2
commit
396786af1c
@@ -1143,10 +1143,9 @@ class Family(SpecFamily):
|
||||
self.pure_nested_structs[nested].request = True
|
||||
if attr in rs_members['reply']:
|
||||
self.pure_nested_structs[nested].reply = True
|
||||
|
||||
if spec.is_multi_val():
|
||||
child = self.pure_nested_structs.get(nested)
|
||||
child.in_multi_val = True
|
||||
if spec.is_multi_val():
|
||||
child = self.pure_nested_structs.get(nested)
|
||||
child.in_multi_val = True
|
||||
|
||||
self._sort_pure_types()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user