From: Jakub Kicinski Date: Mon, 16 Oct 2023 21:39:37 +0000 (-0700) Subject: tools: ynl: fix converting flags to names after recent cleanup X-Git-Tag: v6.7-rc1~160^2~108 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9fea94d3a8cadd83f5de22eae953bd9e951d5215;p=thirdparty%2Fkernel%2Flinux.git tools: ynl: fix converting flags to names after recent cleanup I recently cleaned up specs to not specify enum-as-flags when target enum is already defined as flags. YNL Python library did not convert flags, unfortunately, so this caused breakage for Stan and Willem. Note that the nlspec.py abstraction already hides the differences between flags and enums (value vs user_value), so the changes are pretty trivial. Fixes: 0629f22ec130 ("ynl: netdev: drop unnecessary enum-as-flags") Reported-and-tested-by: Willem de Bruijn Reported-and-tested-by: Stanislav Fomichev Link: https://lore.kernel.org/all/ZS10NtQgd_BJZ3RU@google.com/ Link: https://lore.kernel.org/r/20231016213937.1820386-1-kuba@kernel.org Signed-off-by: Jakub Kicinski --- diff --git a/tools/net/ynl/lib/ynl.py b/tools/net/ynl/lib/ynl.py index 13c4b019a881f..28ac35008e655 100644 --- a/tools/net/ynl/lib/ynl.py +++ b/tools/net/ynl/lib/ynl.py @@ -474,7 +474,7 @@ class YnlFamily(SpecFamily): def _decode_enum(self, raw, attr_spec): enum = self.consts[attr_spec['enum']] - if 'enum-as-flags' in attr_spec and attr_spec['enum-as-flags']: + if enum.type == 'flags' or attr_spec.get('enum-as-flags', False): i = 0 value = set() while raw: