qlcnic: remove assumption that vlan_tci != 0
VLAN.TCI == 0 is perfectly valid (802.1p), so allow it to be accelerated. Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
e84b47941e
commit
b25ddb00bc
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue