As the argument struct hnae3_handle *h of function hclge_get_dscp_prio()
can be other client registered in hnae3 layer, we need to transform it
into hnae3_handle of local nic client to get right dscp settings for
other clients.
Fixes: dfea275e06c2 ("net: hns3: optimize converting dscp to priority process of hns3_nic_select_queue()")
Signed-off-by: Guangbin Huang <huangguangbin2@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
 static int hclge_get_dscp_prio(struct hnae3_handle *h, u8 dscp, u8 *tc_mode,
                               u8 *priority)
 {
+       struct hclge_vport *vport = hclge_get_vport(h);
+
        if (dscp >= HNAE3_MAX_DSCP)
                return -EINVAL;
 
        if (tc_mode)
-               *tc_mode = h->kinfo.tc_map_mode;
+               *tc_mode = vport->nic.kinfo.tc_map_mode;
        if (priority)
-               *priority = h->kinfo.dscp_prio[dscp] == HNAE3_PRIO_ID_INVALID ? 0 :
-                           h->kinfo.dscp_prio[dscp];
+               *priority = vport->nic.kinfo.dscp_prio[dscp] == HNAE3_PRIO_ID_INVALID ? 0 :
+                           vport->nic.kinfo.dscp_prio[dscp];
 
        return 0;
 }