net: hns3: fix get wrong value of function hclge_get_dscp_prio()
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>
This commit is contained in:
parent
4581dd480c
commit
cfdcb07504
@ -12984,14 +12984,16 @@ static void hclge_clean_vport_config(struct hnae3_ae_dev *ae_dev, int num_vfs)
|
||||
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;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user