mirror of
https://github.com/torvalds/linux.git
synced 2026-05-30 18:13:41 +02:00
Merge branch 'tools-ynl-fix-errors-reported-by-ruff'
Matthieu Baerts says: ==================== tools: ynl: fix errors reported by Ruff When looking at the YNL code to add a new feature, my text editor automatically executed 'ruff check', and found out at least one interesting error: one variable was used while not being defined. I then decided to fix this error, and all the other ones reported by Ruff. After this series, 'ruff check' reports no more errors with version 0.12.12. ==================== Link: https://patch.msgid.link/20250909-net-next-ynl-ruff-v1-0-238c2bccdd99@kernel.org Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
commit
4be708d0c4
|
|
@ -2,7 +2,6 @@
|
|||
# SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
|
||||
|
||||
import argparse
|
||||
import json
|
||||
import pathlib
|
||||
import pprint
|
||||
import sys
|
||||
|
|
@ -51,7 +50,7 @@ def print_field(reply, *desc):
|
|||
for spec in desc:
|
||||
try:
|
||||
field, name, tp = spec
|
||||
except:
|
||||
except ValueError:
|
||||
field, name = spec
|
||||
tp = 'int'
|
||||
|
||||
|
|
@ -156,7 +155,6 @@ def main():
|
|||
global args
|
||||
args = parser.parse_args()
|
||||
|
||||
script_abs_dir = os.path.dirname(os.path.abspath(sys.argv[0]))
|
||||
spec = os.path.join(spec_dir(), 'ethtool.yaml')
|
||||
schema = os.path.join(schema_dir(), 'genetlink-legacy.yaml')
|
||||
|
||||
|
|
@ -255,14 +253,14 @@ def main():
|
|||
reply = dumpit(ynl, args, 'channels-get')
|
||||
print(f'Channel parameters for {args.device}:')
|
||||
|
||||
print(f'Pre-set maximums:')
|
||||
print('Pre-set maximums:')
|
||||
print_field(reply,
|
||||
('rx-max', 'RX'),
|
||||
('tx-max', 'TX'),
|
||||
('other-max', 'Other'),
|
||||
('combined-max', 'Combined'))
|
||||
|
||||
print(f'Current hardware settings:')
|
||||
print('Current hardware settings:')
|
||||
print_field(reply,
|
||||
('rx-count', 'RX'),
|
||||
('tx-count', 'TX'),
|
||||
|
|
@ -276,14 +274,14 @@ def main():
|
|||
|
||||
print(f'Ring parameters for {args.device}:')
|
||||
|
||||
print(f'Pre-set maximums:')
|
||||
print('Pre-set maximums:')
|
||||
print_field(reply,
|
||||
('rx-max', 'RX'),
|
||||
('rx-mini-max', 'RX Mini'),
|
||||
('rx-jumbo-max', 'RX Jumbo'),
|
||||
('tx-max', 'TX'))
|
||||
|
||||
print(f'Current hardware settings:')
|
||||
print('Current hardware settings:')
|
||||
print_field(reply,
|
||||
('rx', 'RX'),
|
||||
('rx-mini', 'RX Mini'),
|
||||
|
|
@ -298,7 +296,7 @@ def main():
|
|||
return
|
||||
|
||||
if args.statistics:
|
||||
print(f'NIC statistics:')
|
||||
print('NIC statistics:')
|
||||
|
||||
# TODO: pass id?
|
||||
strset = dumpit(ynl, args, 'strset-get')
|
||||
|
|
|
|||
|
|
@ -8,4 +8,4 @@ from .doc_generator import YnlDocGenerator
|
|||
|
||||
__all__ = ["SpecAttr", "SpecAttrSet", "SpecEnumEntry", "SpecEnumSet",
|
||||
"SpecFamily", "SpecOperation", "SpecSubMessage", "SpecSubMessageFormat",
|
||||
"YnlFamily", "Netlink", "NlError"]
|
||||
"YnlFamily", "Netlink", "NlError", "YnlDocGenerator"]
|
||||
|
|
|
|||
|
|
@ -501,7 +501,7 @@ class SpecFamily(SpecElement):
|
|||
return SpecStruct(self, elem)
|
||||
|
||||
def new_sub_message(self, elem):
|
||||
return SpecSubMessage(self, elem);
|
||||
return SpecSubMessage(self, elem)
|
||||
|
||||
def new_operation(self, elem, req_val, rsp_val):
|
||||
return SpecOperation(self, elem, req_val, rsp_val)
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@ import socket
|
|||
import struct
|
||||
from struct import Struct
|
||||
import sys
|
||||
import yaml
|
||||
import ipaddress
|
||||
import uuid
|
||||
import queue
|
||||
|
|
@ -706,7 +705,7 @@ class YnlFamily(SpecFamily):
|
|||
return attr.as_bin()
|
||||
|
||||
def _rsp_add(self, rsp, name, is_multi, decoded):
|
||||
if is_multi == None:
|
||||
if is_multi is None:
|
||||
if name in rsp and type(rsp[name]) is not list:
|
||||
rsp[name] = [rsp[name]]
|
||||
is_multi = True
|
||||
|
|
@ -739,14 +738,14 @@ class YnlFamily(SpecFamily):
|
|||
decoded = {}
|
||||
offset = 0
|
||||
if msg_format.fixed_header:
|
||||
decoded.update(self._decode_struct(attr.raw, msg_format.fixed_header));
|
||||
decoded.update(self._decode_struct(attr.raw, msg_format.fixed_header))
|
||||
offset = self._struct_size(msg_format.fixed_header)
|
||||
if msg_format.attr_set:
|
||||
if msg_format.attr_set in self.attr_sets:
|
||||
subdict = self._decode(NlAttrs(attr.raw, offset), msg_format.attr_set)
|
||||
decoded.update(subdict)
|
||||
else:
|
||||
raise Exception(f"Unknown attribute-set '{attr_space}' when decoding '{attr_spec.name}'")
|
||||
raise Exception(f"Unknown attribute-set '{msg_format.attr_set}' when decoding '{attr_spec.name}'")
|
||||
return decoded
|
||||
|
||||
def _decode(self, attrs, space, outer_attrs = None):
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@
|
|||
# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
|
||||
|
||||
import argparse
|
||||
import collections
|
||||
import filecmp
|
||||
import pathlib
|
||||
import os
|
||||
|
|
@ -14,7 +13,7 @@ import yaml
|
|||
|
||||
sys.path.append(pathlib.Path(__file__).resolve().parent.as_posix())
|
||||
from lib import SpecFamily, SpecAttrSet, SpecAttr, SpecOperation, SpecEnumSet, SpecEnumEntry
|
||||
from lib import SpecSubMessage, SpecSubMessageFormat
|
||||
from lib import SpecSubMessage
|
||||
|
||||
|
||||
def c_upper(name):
|
||||
|
|
@ -398,7 +397,7 @@ class TypeScalar(Type):
|
|||
if 'enum' in self.attr:
|
||||
enum = self.family.consts[self.attr['enum']]
|
||||
low, high = enum.value_range()
|
||||
if low == None and high == None:
|
||||
if low is None and high is None:
|
||||
self.checks['sparse'] = True
|
||||
else:
|
||||
if 'min' not in self.checks:
|
||||
|
|
@ -485,7 +484,7 @@ class TypeString(Type):
|
|||
ri.cw.p(f"char *{self.c_name};")
|
||||
|
||||
def _attr_typol(self):
|
||||
typol = f'.type = YNL_PT_NUL_STR, '
|
||||
typol = '.type = YNL_PT_NUL_STR, '
|
||||
if self.is_selector:
|
||||
typol += '.is_selector = 1, '
|
||||
return typol
|
||||
|
|
@ -539,7 +538,7 @@ class TypeBinary(Type):
|
|||
ri.cw.p(f"void *{self.c_name};")
|
||||
|
||||
def _attr_typol(self):
|
||||
return f'.type = YNL_PT_BINARY,'
|
||||
return '.type = YNL_PT_BINARY,'
|
||||
|
||||
def _attr_policy(self, policy):
|
||||
if len(self.checks) == 0:
|
||||
|
|
@ -636,10 +635,10 @@ class TypeBitfield32(Type):
|
|||
return "struct nla_bitfield32"
|
||||
|
||||
def _attr_typol(self):
|
||||
return f'.type = YNL_PT_BITFIELD32, '
|
||||
return '.type = YNL_PT_BITFIELD32, '
|
||||
|
||||
def _attr_policy(self, policy):
|
||||
if not 'enum' in self.attr:
|
||||
if 'enum' not in self.attr:
|
||||
raise Exception('Enum required for bitfield32 attr')
|
||||
enum = self.family.consts[self.attr['enum']]
|
||||
mask = enum.get_mask(as_flags=True)
|
||||
|
|
@ -909,7 +908,7 @@ class TypeSubMessage(TypeNest):
|
|||
else:
|
||||
sel_var = f"{var}->{sel}"
|
||||
get_lines = [f'if (!{sel_var})',
|
||||
f'return ynl_submsg_failed(yarg, "%s", "%s");' %
|
||||
'return ynl_submsg_failed(yarg, "%s", "%s");' %
|
||||
(self.name, self['selector']),
|
||||
f"if ({self.nested_render_name}_parse(&parg, {sel_var}, attr))",
|
||||
"return YNL_PARSE_CB_ERROR;"]
|
||||
|
|
@ -1563,7 +1562,7 @@ class RenderInfo:
|
|||
if family.is_classic():
|
||||
self.fixed_hdr_len = f"sizeof(struct {c_lower(fixed_hdr)})"
|
||||
else:
|
||||
raise Exception(f"Per-op fixed header not supported, yet")
|
||||
raise Exception("Per-op fixed header not supported, yet")
|
||||
|
||||
|
||||
# 'do' and 'dump' response parsing is identical
|
||||
|
|
@ -2099,7 +2098,7 @@ def _multi_parse(ri, struct, init_lines, local_vars):
|
|||
if ri.family.is_classic():
|
||||
iter_line = f"ynl_attr_for_each(attr, nlh, sizeof({struct.fixed_header}))"
|
||||
else:
|
||||
raise Exception(f"Per-op fixed header not supported, yet")
|
||||
raise Exception("Per-op fixed header not supported, yet")
|
||||
|
||||
array_nests = set()
|
||||
multi_attrs = set()
|
||||
|
|
@ -2502,7 +2501,7 @@ def print_free_prototype(ri, direction, suffix=';'):
|
|||
|
||||
def print_nlflags_set(ri, direction):
|
||||
name = op_prefix(ri, direction)
|
||||
ri.cw.write_func_prot(f'static inline void', f"{name}_set_nlflags",
|
||||
ri.cw.write_func_prot('static inline void', f"{name}_set_nlflags",
|
||||
[f"struct {name} *req", "__u16 nl_flags"])
|
||||
ri.cw.block_start()
|
||||
ri.cw.p('req->_nlmsg_flags = nl_flags;')
|
||||
|
|
@ -2533,7 +2532,7 @@ def _print_type(ri, direction, struct):
|
|||
line = attr.presence_member(ri.ku_space, type_filter)
|
||||
if line:
|
||||
if not meta_started:
|
||||
ri.cw.block_start(line=f"struct")
|
||||
ri.cw.block_start(line="struct")
|
||||
meta_started = True
|
||||
ri.cw.p(line)
|
||||
if meta_started:
|
||||
|
|
@ -2697,7 +2696,7 @@ def print_dump_type_free(ri):
|
|||
ri.cw.nl()
|
||||
|
||||
_free_type_members(ri, 'rsp', ri.struct['reply'], ref='obj.')
|
||||
ri.cw.p(f'free(rsp);')
|
||||
ri.cw.p('free(rsp);')
|
||||
ri.cw.block_end()
|
||||
ri.cw.block_end()
|
||||
ri.cw.nl()
|
||||
|
|
@ -2708,7 +2707,7 @@ def print_ntf_type_free(ri):
|
|||
ri.cw.block_start()
|
||||
_free_type_members_iter(ri, ri.struct['reply'])
|
||||
_free_type_members(ri, 'rsp', ri.struct['reply'], ref='obj.')
|
||||
ri.cw.p(f'free(rsp);')
|
||||
ri.cw.p('free(rsp);')
|
||||
ri.cw.block_end()
|
||||
ri.cw.nl()
|
||||
|
||||
|
|
@ -2803,8 +2802,6 @@ def print_kernel_policy_sparse_enum_validates(family, cw):
|
|||
cw.p('/* Sparse enums validation callbacks */')
|
||||
first = False
|
||||
|
||||
sign = '' if attr.type[0] == 'u' else '_signed'
|
||||
suffix = 'ULL' if attr.type[0] == 'u' else 'LL'
|
||||
cw.write_func_prot('static int', f'{c_lower(attr.enum_name)}_validate',
|
||||
['const struct nlattr *attr', 'struct netlink_ext_ack *extack'])
|
||||
cw.block_start()
|
||||
|
|
@ -3324,7 +3321,7 @@ def render_user_family(family, cw, prototype):
|
|||
cw.block_start(f'{symbol} = ')
|
||||
cw.p(f'.name\t\t= "{family.c_name}",')
|
||||
if family.is_classic():
|
||||
cw.p(f'.is_classic\t= true,')
|
||||
cw.p('.is_classic\t= true,')
|
||||
cw.p(f'.classic_id\t= {family.get("protonum")},')
|
||||
if family.is_classic():
|
||||
if family.fixed_header:
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user