mirror of https://github.com/torvalds/linux.git
net: dsa: tag_ocelot: use the dsa_xmit_port_mask() helper
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 1f778d500d ("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>
This commit is contained in:
parent
a4a00d9e36
commit
5733fe2a7a
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue