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

Commit b25ddb00 authored by Michał Mirosław's avatar Michał Mirosław Committed by David S. Miller
Browse files

qlcnic: remove assumption that vlan_tci != 0



VLAN.TCI == 0 is perfectly valid (802.1p), so allow it to be accelerated.

Signed-off-by: default avatarMichał Mirosław <mirq-linux@rere.qmqm.pl>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent e84b4794
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -459,7 +459,7 @@ static int qlcnic_tx_pkt(struct qlcnic_adapter *adapter,
			 struct cmd_desc_type0 *first_desc, struct sk_buff *skb,
			 struct qlcnic_host_tx_ring *tx_ring)
{
	u8 l4proto, opcode = 0, hdr_len = 0;
	u8 l4proto, opcode = 0, hdr_len = 0, tag_vlan = 0;
	u16 flags = 0, vlan_tci = 0;
	int copied, offset, copy_len, size;
	struct cmd_desc_type0 *hwdesc;
@@ -472,14 +472,16 @@ static int qlcnic_tx_pkt(struct qlcnic_adapter *adapter,
		flags = QLCNIC_FLAGS_VLAN_TAGGED;
		vlan_tci = ntohs(vh->h_vlan_TCI);
		protocol = ntohs(vh->h_vlan_encapsulated_proto);
		tag_vlan = 1;
	} else if (skb_vlan_tag_present(skb)) {
		flags = QLCNIC_FLAGS_VLAN_OOB;
		vlan_tci = skb_vlan_tag_get(skb);
		tag_vlan = 1;
	}
	if (unlikely(adapter->tx_pvid)) {
		if (vlan_tci && !(adapter->flags & QLCNIC_TAGGING_ENABLED))
		if (tag_vlan && !(adapter->flags & QLCNIC_TAGGING_ENABLED))
			return -EIO;
		if (vlan_tci && (adapter->flags & QLCNIC_TAGGING_ENABLED))
		if (tag_vlan && (adapter->flags & QLCNIC_TAGGING_ENABLED))
			goto set_flags;

		flags = QLCNIC_FLAGS_VLAN_OOB;