Thread (15 messages) flat view 15 messages, 2 authors, 6d ago

Re: [PATCH net-next 8/8] netlink: specs: devlink: add pad to the subsets carrying padded u64s

From: netdev-bot+sashiko@kernel.org
Date: 2026-09-11 20:11:21

Thank you for your contribution! Sashiko AI review found 1 potential
issue(s) to consider:

Critical: 0 · High: 0 · Medium: 0 · Low: 1

- [Low] Missing `Fixes:` tag on a patch that repairs a concrete, user-
  visible parsing failure.

--

netlink: specs: devlink: add pad to the subsets carrying padded u64s

The devlink netlink spec is missing the pad attribute in several nested
attribute subsets that carry padded u64 values, and the separate
dl-attr-stats space had no pad definition of its own. This patch adds
pad to those subsets and gives dl-attr-stats an explicit pad with value
61.
quoted hunk ↗ jump to hunk
diff --git a/Documentation/netlink/specs/devlink.yaml b/Documentation/netlink/specs/devlink.yaml
index 54de1eeb22347..acb22856a6a85 100644
--- a/Documentation/netlink/specs/devlink.yaml
+++ b/Documentation/netlink/specs/devlink.yaml
@@ -1065,6 +1065,8 @@ attribute-sets:
         name: dpipe-table-resource-id
       -
         name: dpipe-table-resource-units
+      -
+        name: pad
[ ... ]
quoted hunk ↗ jump to hunk
@@ -1343,6 +1353,10 @@ attribute-sets:
       -
         name: stats-rx-dropped
         type: u64
+      -
+        name: pad
+        type: pad
+        value: 61
[Severity: Low]
Should this carry a Fixes: tag?  The commit message says the missing pad
"would break parsing stats on an arch without
CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS", which reads like a user-visible
bug fix rather than a spec cleanup.

The kernel really does emit the pad attribute inside these nests:

net/devlink/devl_internal.h:
	static inline int devlink_nl_put_u64(struct sk_buff *msg, int attrtype, u64 val)
	{
		return nla_put_u64_64bit(msg, attrtype, val, DEVLINK_ATTR_PAD);
	}

and all of the touched spaces use it - dpipe table size/resource-id/
resource-units and dpipe entry index/counter in net/devlink/dpipe.c, the
resource attributes in net/devlink/resource.c, region-chunk-addr in
net/devlink/region.c, the health reporter counters in net/devlink/health.c,
and the stats attributes in net/devlink/trap.c.

On the decode side an unknown attribute value in a space is fatal rather
than skipped:

tools/net/ynl/pyynl/lib/ynl.py:YnlFamily._decode() {
	...
		attr_spec = attr_space.attrs_by_val[attr.type]
	except (KeyError, UnboundLocalError) as err:
		if not self.process_unknown:
			raise YnlException(f"Space '{space}' has no attribute "
					   f"with value '{attr.type}'") from err
	...
}

So before this change devlink dpipe/resource/region/health-reporter and
trap stats replies were undecodable by ynl on those architectures.  Would
adding something like:

	Fixes: 74bf6477c18b ("netlink: specs: add partial specification for devlink")

help stable and backport tooling pick this up along with the ynl tooling?

-- 
Sashiko AI review · https://netdev-ai.bots.linux.dev/sashiko/#/patchset/20260910200312.2665792-1-kuba%40kernel.org
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help