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;