
From: Chiqijun <chiqijun@huawei.com> driver inclusion category: bugfix bugzilla: 4472 ----------------------------------------------------------------------- When there are multiple priority packets in a tx queue in 1822, the out-of-sequence of the sent packets will cause data inconsistency. When DCB is enabled and Layer 2 forwarding is configured, when the receiving vlan device is configured with ingress_map, the priority of skb may be mapped to a non-zero value. The hinic driver first selects the queue through skb-> priority, but the priority is fixed to use vlan priority. As a result, there may be multiple priorities for the same tx queue. Therefore, the driver is modified to only select the queue through the VLAN priority. Signed-off-by: Chiqijun <chiqijun@huawei.com> Reviewed-by: Zengweiliang <zengweiliang.zengweiliang@huawei.com> Signed-off-by: Yang Yingliang <yangyingliang@huawei.com> --- drivers/net/ethernet/huawei/hinic/hinic_main.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/net/ethernet/huawei/hinic/hinic_main.c b/drivers/net/ethernet/huawei/hinic/hinic_main.c index 55717e8..dd67d90 100644 --- a/drivers/net/ethernet/huawei/hinic/hinic_main.c +++ b/drivers/net/ethernet/huawei/hinic/hinic_main.c @@ -1193,8 +1193,7 @@ static u16 hinic_select_queue(struct net_device *netdev, struct sk_buff *skb) { struct hinic_nic_dev *nic_dev = netdev_priv(netdev); - if (skb->vlan_tci && !skb->priority) - skb->priority = skb->vlan_tci >> VLAN_PRIO_SHIFT; + skb->priority = skb->vlan_tci >> VLAN_PRIO_SHIFT; if (netdev_get_num_tc(netdev) || !nic_dev->rss_hkey_user_be) goto fallback; -- 1.8.3