mirror of
https://github.com/torvalds/linux.git
synced 2024-12-01 00:21:32 +00:00
tools: ynl-gen: fix unused / pad attribute handling
Unused and Pad attributes don't carry information. Unused should never exist, and be rejected. Pad should be silently skipped. Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
91dfaef243
commit
6ad49839ba
@ -170,6 +170,7 @@ class Type(SpecAttr):
|
||||
for line in lines:
|
||||
ri.cw.p(line)
|
||||
ri.cw.block_end()
|
||||
return True
|
||||
|
||||
def _setter_lines(self, ri, member, presence):
|
||||
raise Exception(f"Setter not implemented for class type {self.type}")
|
||||
@ -197,6 +198,12 @@ class TypeUnused(Type):
|
||||
def presence_type(self):
|
||||
return ''
|
||||
|
||||
def arg_member(self, ri):
|
||||
return []
|
||||
|
||||
def _attr_get(self, ri, var):
|
||||
return ['return MNL_CB_ERROR;'], None, None
|
||||
|
||||
def _attr_typol(self):
|
||||
return '.type = YNL_PT_REJECT, '
|
||||
|
||||
@ -208,8 +215,14 @@ class TypePad(Type):
|
||||
def presence_type(self):
|
||||
return ''
|
||||
|
||||
def arg_member(self, ri):
|
||||
return []
|
||||
|
||||
def _attr_typol(self):
|
||||
return '.type = YNL_PT_REJECT, '
|
||||
return '.type = YNL_PT_IGNORE, '
|
||||
|
||||
def attr_get(self, ri, var, first):
|
||||
pass
|
||||
|
||||
def attr_policy(self, cw):
|
||||
pass
|
||||
@ -1211,8 +1224,9 @@ def _multi_parse(ri, struct, init_lines, local_vars):
|
||||
|
||||
first = True
|
||||
for _, arg in struct.member_list():
|
||||
arg.attr_get(ri, 'dst', first=first)
|
||||
first = False
|
||||
good = arg.attr_get(ri, 'dst', first=first)
|
||||
# First may be 'unused' or 'pad', ignore those
|
||||
first &= not good
|
||||
|
||||
ri.cw.block_end()
|
||||
ri.cw.nl()
|
||||
|
Loading…
Reference in New Issue
Block a user