Skip to content

Commit

Permalink
net: dsa: b53: Set untag_bridge_pvid
Browse files Browse the repository at this point in the history
Indicate to the DSA receive path that we need to untage the bridge PVID,
this allows us to remove the dsa_untag_bridge_pvid() calls from
net/dsa/tag_brcm.c.

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Florian Fainelli authored and David S. Miller committed Oct 2, 2020
1 parent 1dc0408 commit 1c5ad5a
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 13 deletions.
1 change: 1 addition & 0 deletions drivers/net/dsa/b53/b53_common.c
Original file line number Diff line number Diff line change
Expand Up @@ -2603,6 +2603,7 @@ struct b53_device *b53_switch_alloc(struct device *base,
dev->ops = ops;
ds->ops = &b53_switch_ops;
ds->configure_vlan_while_not_filtering = true;
ds->untag_bridge_pvid = true;
dev->vlan_enabled = ds->configure_vlan_while_not_filtering;
mutex_init(&dev->reg_mutex);
mutex_init(&dev->stats_mutex);
Expand Down
15 changes: 2 additions & 13 deletions net/dsa/tag_brcm.c
Original file line number Diff line number Diff line change
Expand Up @@ -152,11 +152,6 @@ static struct sk_buff *brcm_tag_rcv_ll(struct sk_buff *skb,
/* Remove Broadcom tag and update checksum */
skb_pull_rcsum(skb, BRCM_TAG_LEN);

/* Set the MAC header to where it should point for
* dsa_untag_bridge_pvid() to parse the correct VLAN header.
*/
skb_set_mac_header(skb, -ETH_HLEN);

skb->offload_fwd_mark = 1;

return skb;
Expand Down Expand Up @@ -187,7 +182,7 @@ static struct sk_buff *brcm_tag_rcv(struct sk_buff *skb, struct net_device *dev,
nskb->data - ETH_HLEN - BRCM_TAG_LEN,
2 * ETH_ALEN);

return dsa_untag_bridge_pvid(nskb);
return nskb;
}

static const struct dsa_device_ops brcm_netdev_ops = {
Expand All @@ -214,14 +209,8 @@ static struct sk_buff *brcm_tag_rcv_prepend(struct sk_buff *skb,
struct net_device *dev,
struct packet_type *pt)
{
struct sk_buff *nskb;

/* tag is prepended to the packet */
nskb = brcm_tag_rcv_ll(skb, dev, pt, ETH_HLEN);
if (!nskb)
return nskb;

return dsa_untag_bridge_pvid(nskb);
return brcm_tag_rcv_ll(skb, dev, pt, ETH_HLEN);
}

static const struct dsa_device_ops brcm_prepend_netdev_ops = {
Expand Down

0 comments on commit 1c5ad5a

Please sign in to comment.