Skip to content

Commit 5126b9d

Browse files
Yufeng Modavem330
authored andcommitted
net: hns3: fix a return value error in hclge_get_reset_status()
hclge_get_reset_status() should return the tqp reset status. However, if the CMDQ fails, the caller will take it as tqp reset success status by mistake. Therefore, uses a parameters to get the tqp reset status instead. Fixes: 46a3df9 ("net: hns3: Add HNS3 Acceleration Engine & Compatibility Layer Support") Signed-off-by: Yufeng Mo <[email protected]> Signed-off-by: Guangbin Huang <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent ef39d63 commit 5126b9d

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10726,7 +10726,8 @@ static int hclge_reset_tqp_cmd_send(struct hclge_dev *hdev, u16 queue_id,
1072610726
return 0;
1072710727
}
1072810728

10729-
static int hclge_get_reset_status(struct hclge_dev *hdev, u16 queue_id)
10729+
static int hclge_get_reset_status(struct hclge_dev *hdev, u16 queue_id,
10730+
u8 *reset_status)
1073010731
{
1073110732
struct hclge_reset_tqp_queue_cmd *req;
1073210733
struct hclge_desc desc;
@@ -10744,7 +10745,9 @@ static int hclge_get_reset_status(struct hclge_dev *hdev, u16 queue_id)
1074410745
return ret;
1074510746
}
1074610747

10747-
return hnae3_get_bit(req->ready_to_reset, HCLGE_TQP_RESET_B);
10748+
*reset_status = hnae3_get_bit(req->ready_to_reset, HCLGE_TQP_RESET_B);
10749+
10750+
return 0;
1074810751
}
1074910752

1075010753
u16 hclge_covert_handle_qid_global(struct hnae3_handle *handle, u16 queue_id)
@@ -10763,7 +10766,7 @@ static int hclge_reset_tqp_cmd(struct hnae3_handle *handle)
1076310766
struct hclge_vport *vport = hclge_get_vport(handle);
1076410767
struct hclge_dev *hdev = vport->back;
1076510768
u16 reset_try_times = 0;
10766-
int reset_status;
10769+
u8 reset_status;
1076710770
u16 queue_gid;
1076810771
int ret;
1076910772
u16 i;
@@ -10779,7 +10782,11 @@ static int hclge_reset_tqp_cmd(struct hnae3_handle *handle)
1077910782
}
1078010783

1078110784
while (reset_try_times++ < HCLGE_TQP_RESET_TRY_TIMES) {
10782-
reset_status = hclge_get_reset_status(hdev, queue_gid);
10785+
ret = hclge_get_reset_status(hdev, queue_gid,
10786+
&reset_status);
10787+
if (ret)
10788+
return ret;
10789+
1078310790
if (reset_status)
1078410791
break;
1078510792

0 commit comments

Comments
 (0)