Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit efee8e87 authored by Sarveshwar Bandi's avatar Sarveshwar Bandi Committed by David S. Miller
Browse files

be2net: Avoid double insertion of vlan tags.



Fix to avoid double insertion of  vlan tags into the packet while
handling an asic workaroud (issue introduced by net next Commit bc0c3405)

Signed-off-by: default avatarSarveshwar Bandi <sarveshwar.bandi@emulex.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 950c54df
Loading
Loading
Loading
Loading
+5 −13
Original line number Diff line number Diff line
@@ -780,26 +780,18 @@ static struct sk_buff *be_insert_vlan_in_pkt(struct be_adapter *adapter,
	if (unlikely(!skb))
		return skb;

	if (vlan_tx_tag_present(skb)) {
	if (vlan_tx_tag_present(skb))
		vlan_tag = be_get_tx_vlan_tag(adapter, skb);
		skb = __vlan_put_tag(skb, htons(ETH_P_8021Q), vlan_tag);
		if (skb)
			skb->vlan_tci = 0;
	}

	if (qnq_async_evt_rcvd(adapter) && adapter->pvid) {
		if (!vlan_tag)
	else if (qnq_async_evt_rcvd(adapter) && adapter->pvid)
		vlan_tag = adapter->pvid;
		if (skip_hw_vlan)
			*skip_hw_vlan = true;
	}

	if (vlan_tag) {
		skb = __vlan_put_tag(skb, htons(ETH_P_8021Q), vlan_tag);
		if (unlikely(!skb))
			return skb;

		skb->vlan_tci = 0;
		if (skip_hw_vlan)
			*skip_hw_vlan = true;
	}

	/* Insert the outer VLAN, if any */