Skip to content

Commit d6a3511

Browse files
committed
Merge branch 'hns3-next'
Huazhong Tan says: ==================== net: hns3: misc updates for -next This patchset includes some misc updates for the HNS3 ethernet driver. ==================== Signed-off-by: David S. Miller <[email protected]>
2 parents 4a11c55 + 6f45a9b commit d6a3511

File tree

3 files changed

+16
-7
lines changed

3 files changed

+16
-7
lines changed

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -426,6 +426,9 @@ int hclge_cmd_init(struct hclge_dev *hdev)
426426
* reset may happen when lower level reset is being processed.
427427
*/
428428
if ((hclge_is_reset_pending(hdev))) {
429+
dev_err(&hdev->pdev->dev,
430+
"failed to init cmd since reset %#lx pending\n",
431+
hdev->reset_pending);
429432
ret = -EBUSY;
430433
goto err_cmd_init;
431434
}

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

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3770,11 +3770,6 @@ static int hclge_reset_rebuild(struct hclge_dev *hdev)
37703770

37713771
hclge_clear_reset_cause(hdev);
37723772

3773-
ret = hclge_reset_prepare_up(hdev);
3774-
if (ret)
3775-
return ret;
3776-
3777-
37783773
ret = hclge_notify_roce_client(hdev, HNAE3_INIT_CLIENT);
37793774
/* ignore RoCE notify error if it fails HCLGE_RESET_MAX_FAIL_CNT - 1
37803775
* times
@@ -3783,6 +3778,10 @@ static int hclge_reset_rebuild(struct hclge_dev *hdev)
37833778
hdev->rst_stats.reset_fail_cnt < HCLGE_RESET_MAX_FAIL_CNT - 1)
37843779
return ret;
37853780

3781+
ret = hclge_reset_prepare_up(hdev);
3782+
if (ret)
3783+
return ret;
3784+
37863785
rtnl_lock();
37873786
ret = hclge_notify_client(hdev, HNAE3_UP_CLIENT);
37883787
rtnl_unlock();
@@ -6584,8 +6583,6 @@ static int hclge_set_app_loopback(struct hclge_dev *hdev, bool en)
65846583
/* 2 Then setup the loopback flag */
65856584
loop_en = le32_to_cpu(req->txrx_pad_fcs_loop_en);
65866585
hnae3_set_bit(loop_en, HCLGE_MAC_APP_LP_B, en ? 1 : 0);
6587-
hnae3_set_bit(loop_en, HCLGE_MAC_TX_EN_B, en ? 1 : 0);
6588-
hnae3_set_bit(loop_en, HCLGE_MAC_RX_EN_B, en ? 1 : 0);
65896586

65906587
req->txrx_pad_fcs_loop_en = cpu_to_le32(loop_en);
65916588

drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2713,13 +2713,22 @@ static int hclgevf_init_nic_client_instance(struct hnae3_ae_dev *ae_dev,
27132713
struct hnae3_client *client)
27142714
{
27152715
struct hclgevf_dev *hdev = ae_dev->priv;
2716+
int rst_cnt = hdev->rst_stats.rst_cnt;
27162717
int ret;
27172718

27182719
ret = client->ops->init_instance(&hdev->nic);
27192720
if (ret)
27202721
return ret;
27212722

27222723
set_bit(HCLGEVF_STATE_NIC_REGISTERED, &hdev->state);
2724+
if (test_bit(HCLGEVF_STATE_RST_HANDLING, &hdev->state) ||
2725+
rst_cnt != hdev->rst_stats.rst_cnt) {
2726+
clear_bit(HCLGEVF_STATE_NIC_REGISTERED, &hdev->state);
2727+
2728+
client->ops->uninit_instance(&hdev->nic, 0);
2729+
return -EBUSY;
2730+
}
2731+
27232732
hnae3_set_client_init_flag(client, ae_dev, 1);
27242733

27252734
if (netif_msg_drv(&hdev->nic))

0 commit comments

Comments
 (0)