]> Gentwo Git Trees - linux/.git/commitdiff
net: dsa: tag_ocelot: use the dsa_xmit_port_mask() helper
authorVladimir Oltean <vladimir.oltean@nxp.com>
Thu, 27 Nov 2025 12:08:55 +0000 (14:08 +0200)
committerJakub Kicinski <kuba@kernel.org>
Sat, 29 Nov 2025 04:03:40 +0000 (20:03 -0800)
The "ocelot" and "seville" tagging protocols populate a bit mask for the
TX ports, so we can use dsa_xmit_port_mask() to centralize the decision
of how to set that field.

This protocol used BIT_ULL() rather than simple BIT() to silence Smatch,
as explained in commit 1f778d500df3 ("net: mscc: ocelot: avoid type
promotion when calling ocelot_ifh_set_dest"). I would expect that this
tool no longer complains now, when the BIT(dp->index) is hidden inside
the dsa_xmit_port_mask() function, the return value of which is promoted
to u64.

Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Link: https://patch.msgid.link/20251127120902.292555-9-vladimir.oltean@nxp.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/dsa/tag_ocelot.c

index bf6608fc6be70e8a1aa9dc12d79371c17b147503..3405def79c2def187fe70de8f8e0a5be8377c87d 100644 (file)
@@ -46,11 +46,10 @@ static void ocelot_xmit_common(struct sk_buff *skb, struct net_device *netdev,
 static struct sk_buff *ocelot_xmit(struct sk_buff *skb,
                                   struct net_device *netdev)
 {
-       struct dsa_port *dp = dsa_user_to_port(netdev);
        void *injection;
 
        ocelot_xmit_common(skb, netdev, cpu_to_be32(0x8880000a), &injection);
-       ocelot_ifh_set_dest(injection, BIT_ULL(dp->index));
+       ocelot_ifh_set_dest(injection, dsa_xmit_port_mask(skb, netdev));
 
        return skb;
 }
@@ -58,11 +57,10 @@ static struct sk_buff *ocelot_xmit(struct sk_buff *skb,
 static struct sk_buff *seville_xmit(struct sk_buff *skb,
                                    struct net_device *netdev)
 {
-       struct dsa_port *dp = dsa_user_to_port(netdev);
        void *injection;
 
        ocelot_xmit_common(skb, netdev, cpu_to_be32(0x88800005), &injection);
-       seville_ifh_set_dest(injection, BIT_ULL(dp->index));
+       seville_ifh_set_dest(injection, dsa_xmit_port_mask(skb, netdev));
 
        return skb;
 }