Commit d7ddf5f4 authored by Arkadiusz Kubalewski's avatar Arkadiusz Kubalewski Committed by Jakub Kicinski
Browse files

tools: ynl-gen: fix enum index in _decode_enum(..)



Remove wrong index adjustment, which is leftover from adding
support for sparse enums.
enum.entries_by_val() function shall not subtract the start-value, as
it is indexed with real enum value.

Fixes: c311aaa7 ("tools: ynl: fix enum-as-flags in the generic CLI")
Signed-off-by: default avatarArkadiusz Kubalewski <arkadiusz.kubalewski@intel.com>
Reviewed-by: default avatarDonald Hunter <donald.hunter@gmail.com>
Link: https://lore.kernel.org/r/20230725101642.267248-2-arkadiusz.kubalewski@intel.com


Reviewed-by: default avatarJakub Kicinski <kuba@kernel.org>
Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent d4a7ce64
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -420,8 +420,8 @@ class YnlFamily(SpecFamily):
    def _decode_enum(self, rsp, attr_spec):
        raw = rsp[attr_spec['name']]
        enum = self.consts[attr_spec['enum']]
        i = attr_spec.get('value-start', 0)
        if 'enum-as-flags' in attr_spec and attr_spec['enum-as-flags']:
            i = 0
            value = set()
            while raw:
                if raw & 1:
@@ -429,7 +429,7 @@ class YnlFamily(SpecFamily):
                raw >>= 1
                i += 1
        else:
            value = enum.entries_by_val[raw - i].name
            value = enum.entries_by_val[raw].name
        rsp[attr_spec['name']] = value

    def _decode_binary(self, attr, attr_spec):