On Tue, 7 Mar 2023 15:53:58 +0100 Lorenzo Bianconi wrote: > Properly manage render-max property for flags definition type > introducing mask value and setting it to (last_element << 1) - 1 > instead of adding max value set to last_element + 1 > > Fixes: be5bea1cc0bf ("net: add basic C code generators for Netlink") > Signed-off-by: Lorenzo Bianconi <lorenzo@xxxxxxxxxx> > --- > tools/net/ynl/ynl-gen-c.py | 11 ++++++++--- > 1 file changed, 8 insertions(+), 3 deletions(-) > > diff --git a/tools/net/ynl/ynl-gen-c.py b/tools/net/ynl/ynl-gen-c.py > index 274e9c566f61..f2e41dd962d4 100755 > --- a/tools/net/ynl/ynl-gen-c.py > +++ b/tools/net/ynl/ynl-gen-c.py > @@ -1995,9 +1995,14 @@ def render_uapi(family, cw): > > if const.get('render-max', False): > cw.nl() > - max_name = c_upper(name_pfx + 'max') > - cw.p('__' + max_name + ',') > - cw.p(max_name + ' = (__' + max_name + ' - 1)') > + if const['type'] == 'flags': > + max_name = c_upper(name_pfx + 'mask') > + max_val = f' = {(entry.user_value() << 1) - 1},' Hm, why not use const.get_mask() here? Rather than the last entry? > + cw.p(max_name + max_val) > + else: > + max_name = c_upper(name_pfx + 'max') > + cw.p('__' + max_name + ',') > + cw.p(max_name + ' = (__' + max_name + ' - 1)') > cw.block_end(line=';') > cw.nl() > elif const['type'] == 'const':