summaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/hisilicon
diff options
context:
space:
mode:
authorWeihang Li2019-06-20 10:52:45 +0200
committerDavid S. Miller2019-06-26 17:59:02 +0200
commitbcf643c51434e1f7930e3b951a406eb63c4c71f6 (patch)
tree2996840949d8f43a62c76464c597f3c33ac78a92 /drivers/net/ethernet/hisilicon
parentnet: hns3: fixes wrong place enabling ROCE HW error when loading (diff)
downloadkernel-qcow2-linux-bcf643c51434e1f7930e3b951a406eb63c4c71f6.tar.gz
kernel-qcow2-linux-bcf643c51434e1f7930e3b951a406eb63c4c71f6.tar.xz
kernel-qcow2-linux-bcf643c51434e1f7930e3b951a406eb63c4c71f6.zip
net: hns3: add exception handling when enable NIC HW error interrupts
If we failed to enable NIC HW error interrupts during client initialization in some cases, we should do exception handling to clear flags and free the resources. Fixes: 00ea6e5fda9d ("net: hns3: delay and separate enabling of NIC and ROCE HW errors") Signed-off-by: Weihang Li <liweihang@hisilicon.com> Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/hisilicon')
-rw-r--r--drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
index b0a99c30a384..b25365c343d1 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
@@ -8297,13 +8297,15 @@ static int hclge_init_nic_client_instance(struct hnae3_ae_dev *ae_dev,
goto init_nic_err;
}
- hnae3_set_client_init_flag(client, ae_dev, 1);
-
/* Enable nic hw error interrupts */
ret = hclge_config_nic_hw_error(hdev, true);
- if (ret)
+ if (ret) {
dev_err(&ae_dev->pdev->dev,
"fail(%d) to enable hw error interrupts\n", ret);
+ goto init_nic_err;
+ }
+
+ hnae3_set_client_init_flag(client, ae_dev, 1);
if (netif_msg_drv(&hdev->vport->nic))
hclge_info_show(hdev);