From: netdev-bot+sashiko@kernel.org
To: kyle.switch@motor-comm.com
Cc: andrew@lunn.ch, olteanv@gmail.com, davem@davemloft.net,
edumazet@google.com, kuba@kernel.org, pabeni@redhat.com,
mmyangfl@gmail.com, horms@kernel.org, linux@armlinux.org.uk,
netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
ming.xu@motor-comm.com, xiaolin.xu@motor-comm.com,
jianmin.wang@motor-comm.com, wei.zhang@gl-inet.com,
sijia.huang@gl-inet.com
Subject: Re: [PATCH net-next v7 5/6] net: dsa: tag_yt922x: add support for Motorcomm YT922x tags
Date: Wed, 16 Sep 2026 16:30:15 +0000 [thread overview]
Message-ID: <178957621503.22033.11339961228800379392@kernel.org> (raw)
In-Reply-To: <20260914103009.3007019-6-kyle.switch@motor-comm.com>
Thank you for your contribution! Sashiko AI review found 4 potential
issue(s) to consider:
Critical: 0 · High: 0 · Medium: 0 · Low: 4
- [Low] Claim: the new DSA tag protocol DSA_TAG_PROTO_YT922X /
CONFIG_NET_DSA_TAG_YT922X has no consumer in the tree (dead code).
- [Low] The YT922x tag layout is effectively undocumented:
net/dsa/tag_yt922x.c:15-17 contains only the placeholder comment "/*…
- [Low] The RX priority field declared by the new tag format is never
decoded.
- [Low] The new tagger emits and validates the uAPI constant ETH_P_YT921X
for a YT922x tag: net/dsa/tag_yt922x.c:40 (`tag[0] =…
--
net: dsa: tag_yt922x: add support for Motorcomm YT922x tags
This adds a new DSA tagging driver for Motorcomm YT922x switches with an
8-byte tag preceded by an EtherType of 0x9988, plus the new
DSA_TAG_PROTO_YT922X protocol value, Kconfig symbol and Makefile entry.
A few questions below.
> diff --git a/net/dsa/tag_yt922x.c b/net/dsa/tag_yt922x.c
> new file mode 100644
> index 0000000000000..1ee9d17735988
> --- /dev/null
> +++ b/net/dsa/tag_yt922x.c
> @@ -0,0 +1,111 @@
[ ... ]
> +#define YT922X_TAG_LEN 8
> +
> +/*
> + * To define the from cpu tag format 8 bytes:
> + */
[Severity: Low]
This isn't a bug, but could the tag layout be documented here? The
comment above currently describes none of the fields, while the sibling
tagger for the same vendor, net/dsa/tag_yt921x.c, carries a full frame
diagram and a per-bit description of every 16-bit tag word:
net/dsa/tag_yt921x.c:
* +----+----+-------+-----+----+---------
* | DA | SA | TagET | Tag | ET | Payload ...
* +----+----+-------+-----+----+---------
* 6 6 2 6 2 N
...
* 2:
* 15b: Tx Port(s) Valid
* 10b-0b: Tx Port(s) Mask
Without that, the reuse of tag[2] in opposite directions (transmit writes
YT922X_TAG_PORTMASK_0 = BIT(15), receive reads YT922X_TAG_RX_PORT_M =
GENMASK(5, 2)) and the split of the destination port mask across tag[1]
bits 8:0 and tag[2] bit 15 cannot be checked against the hardware by a
reviewer.
> +#define YT922X_TAG_NAME "yt922x"
> +#define YT922X_TAG_PORTMASK_0 BIT(15)
> +#define YT922X_TAG_PORTMASK_M GENMASK(8, 0)
> +#define YT922X_TAG_PORTS(x) FIELD_PREP(YT922X_TAG_PORTMASK_M, (x))
> +#define YT922X_TAG_FORCE_DST BIT(9)
> +#define YT922X_TAG_PRIO_M GENMASK(12, 10)
> +#define YT922X_TAG_PRIO_EN BIT(13)
> +#define YT922X_TAG_PRIO(x) (FIELD_PREP(YT922X_TAG_PRIO_M, (x)) | YT922X_TAG_PRIO_EN)
> +#define YT922X_TAG_RX_PORT_M GENMASK(5, 2)
> +#define YT922X_TAG_RX_PRIO_M GENMASK(15, 13)
^^^^
[Severity: Low]
Is YT922X_TAG_RX_PRIO_M meant to be used? It is defined here but never
referenced anywhere in the file, and yt922x_tag_rcv() only extracts the
source port from tag[2] and never assigns skb->priority, so the ingress
priority reported by the switch is dropped.
The transmit path does encode skb->priority into the tag:
ctrl = YT922X_TAG_PRIO(skb->priority) | YT922X_TAG_FORCE_DST |
YT922X_TAG_PORTS(ports >> 1);
and comparable taggers decode it on receive, for example
net/dsa/tag_yt921x.c:yt921x_tag_rcv():
skb->priority = FIELD_GET(YT921X_TAG_PRIO_M, rx);
Should yt922x_tag_rcv() do the same with YT922X_TAG_RX_PRIO_M?
> +
> +static struct sk_buff *
> +yt922x_tag_xmit(struct sk_buff *skb, struct net_device *netdev)
> +{
[ ... ]
> + tag[0] = htons(ETH_P_YT921X);
[Severity: Low]
This isn't a bug, but the YT922x tagger emits and validates a uAPI
constant named for YT921x, both here and in yt922x_tag_rcv():
if (unlikely(tag[0] != htons(ETH_P_YT921X))) {
include/uapi/linux/if_ether.h currently scopes that value to one family:
#define ETH_P_YT921X 0x9988 /* Motorcomm YT921x DSA [ NOT AN OFFICIALLY REGISTERED ID ] */
Should the header comment be broadened (something like "Motorcomm YT92xx
DSA") or a YT922x alias added, so the uAPI still describes all in-tree
users of 0x9988? It would also help if the commit message stated that the
two chip families intentionally share the tag EtherType while using
different tag bodies.
> + ports = dsa_xmit_port_mask(skb, netdev);
> + /*To fill in the case where the port index is not 0 */
[ ... ]
> +static const struct dsa_device_ops yt922x_netdev_ops = {
> + .name = YT922X_TAG_NAME,
> + .proto = DSA_TAG_PROTO_YT922X,
[Severity: Low]
This isn't a bug, but could the commit message mention the companion
patch that consumes this protocol?
At this commit nothing requests DSA_TAG_PROTO_YT922X, and the consumer
only appears in the last patch of the series, "net: dsa: motorcomm: Add
support for Motorcomm YT922x", which adds
yt922x_dsa_get_tag_protocol() returning DSA_TAG_PROTO_YT922X and adds
select NET_DSA_TAG_YT922X to drivers/net/dsa/motorcomm/Kconfig.
So there is no dead code in the merged series, and the ordering is the
usual DSA practice; a note in the commit message pointing at the driver
patch would make that clear on its own.
> + .xmit = yt922x_tag_xmit,
> + .rcv = yt922x_tag_rcv,
> + .needed_headroom = YT922X_TAG_LEN,
> +};
Also, in the commit message, "Add support for Motorcomm YT922x tags with
8bytes. which includes ethertype field (default to 0x9988)." reads a bit
oddly: "8bytes" is missing a space, and the sentence break before "which"
should probably be a comma.
--
Sashiko AI review · https://netdev-ai.bots.linux.dev/sashiko/#/patchset/20260914103009.3007019-1-kyle.switch%40motor-comm.com
next prev parent reply other threads:[~2026-09-16 16:30 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-14 10:30 [PATCH net-next v7 0/6] net: dsa: motorcomm: add support yt922x driver Kyle Switch
2026-09-14 10:30 ` [PATCH net-next v7 1/6] net: dsa: motorcomm: initialize dsa_switch based on chipid Kyle Switch
2026-09-16 15:33 ` David Yang
2026-09-16 16:30 ` netdev-bot+sashiko
2026-09-14 10:30 ` [PATCH net-next v7 2/6] net: dsa: motorcomm: use max_ports in series for port bounds checking Kyle Switch
2026-09-16 16:30 ` netdev-bot+sashiko
2026-09-14 10:30 ` [PATCH net-next v7 3/6] net: dsa: motorcomm: move mib start from probe() to dsa_setup() Kyle Switch
2026-09-16 16:30 ` netdev-bot+sashiko
2026-09-14 10:30 ` [PATCH net-next v7 4/6] net: dsa: motorcomm: move mib stop from remove() to teardown() Kyle Switch
2026-09-14 10:30 ` [PATCH net-next v7 5/6] net: dsa: tag_yt922x: add support for Motorcomm YT922x tags Kyle Switch
2026-09-16 16:30 ` netdev-bot+sashiko [this message]
2026-09-14 10:30 ` [PATCH net-next v7 6/6] net: dsa: motorcomm: Add support for Motorcomm YT922x Kyle Switch
2026-09-16 15:39 ` David Yang
2026-09-16 16:30 ` netdev-bot+sashiko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=178957621503.22033.11339961228800379392@kernel.org \
--to=netdev-bot+sashiko@kernel.org \
--cc=andrew@lunn.ch \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=horms@kernel.org \
--cc=jianmin.wang@motor-comm.com \
--cc=kuba@kernel.org \
--cc=kyle.switch@motor-comm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=ming.xu@motor-comm.com \
--cc=mmyangfl@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=olteanv@gmail.com \
--cc=pabeni@redhat.com \
--cc=sijia.huang@gl-inet.com \
--cc=wei.zhang@gl-inet.com \
--cc=xiaolin.xu@motor-comm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®