mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
netlink: specs: nlctrl: fix the policy attribute numbering
mask and pad are declared the wrong way round, giving mask 11 and pad 12, while enum netlink_policy_type_attr has NL_POLICY_TYPE_ATTR_PAD at 11 and NL_POLICY_TYPE_ATTR_MASK at 12. The kernel emits the mask for every NLA_POLICY_MASK() attribute, so a Python YNL client parsing a policy dump maps it onto pad and throws it away - 30 of them in ethtool's policy alone. In the other direction the 64-bit alignment padding, which the kernel does emit on architectures without efficient unaligned access, is decoded as a u64 mask and blows up the whole dump. But those architectures are rare. The generated C parser is not affected, it keys the attributes off the uAPI symbol names rather than off the values the spec derives. Reviewed-by: Donald Hunter <donald.hunter@gmail.com> Link: https://patch.msgid.link/20260916021516.1701760-1-kuba@kernel.org Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
29f4b46371
commit
0fa13b71c3
|
|
@ -156,12 +156,12 @@ attribute-sets:
|
|||
-
|
||||
name: bitfield32-mask
|
||||
type: u32
|
||||
-
|
||||
name: mask
|
||||
type: u64
|
||||
-
|
||||
name: pad
|
||||
type: pad
|
||||
-
|
||||
name: mask
|
||||
type: u64
|
||||
-
|
||||
name: byte-order
|
||||
doc: Byte order of the attribute, absent means host byte order.
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user