Message ID | b4359cc25819674de797029eb7e4a746853c1df4.1678200041.git.lorenzo@kernel.org (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | update xdp_features flag according to NIC re-configuration | expand |
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@kernel.org> > --- > 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':
> 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@kernel.org> > > --- > > 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? actually I did this change but it ended up in patch 3/8. I will fix it in v2. Regards, Lorenzo > > > + 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': >
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},' + 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':
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@kernel.org> --- tools/net/ynl/ynl-gen-c.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-)