提交 96f629e4 编写于 作者: L Leon Romanovsky 提交者: Zheng Zengkai

net: hns3: remove always exist devlink pointer check

mainline inclusion
from mainline-master
commit a1fcb106
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I46N6O
CVE: NA

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a1fcb106ae97cc34cc8101efafb89eaa837be009

----------------------------------------------------------------------

The devlink pointer always exists after hclge_devlink_init() succeed.
Remove that check together with NULL setting after release and ensure
that devlink_register is last command prior to call to devlink_reload_enable().

Fixes: b741269b ("net: hns3: add support for registering devlink for PF")
Signed-off-by: NLeon Romanovsky <leonro@nvidia.com>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
Reviewed-by: NYongxin Li <liyongxin1@huawei.com>
Signed-off-by: NJunxin Chen <chenjunxin1@huawei.com>
(fix conflicts: interface devlink_register adapt)
Signed-off-by: NZheng Zengkai <zhengzengkai@huawei.com>
上级 689fae6b
...@@ -118,6 +118,7 @@ int hclge_devlink_init(struct hclge_dev *hdev) ...@@ -118,6 +118,7 @@ int hclge_devlink_init(struct hclge_dev *hdev)
priv = devlink_priv(devlink); priv = devlink_priv(devlink);
priv->hdev = hdev; priv->hdev = hdev;
hdev->devlink = devlink;
ret = devlink_register(devlink, &pdev->dev); ret = devlink_register(devlink, &pdev->dev);
if (ret) { if (ret) {
...@@ -126,8 +127,6 @@ int hclge_devlink_init(struct hclge_dev *hdev) ...@@ -126,8 +127,6 @@ int hclge_devlink_init(struct hclge_dev *hdev)
goto out_reg_fail; goto out_reg_fail;
} }
hdev->devlink = devlink;
devlink_reload_enable(devlink); devlink_reload_enable(devlink);
return 0; return 0;
...@@ -141,14 +140,9 @@ void hclge_devlink_uninit(struct hclge_dev *hdev) ...@@ -141,14 +140,9 @@ void hclge_devlink_uninit(struct hclge_dev *hdev)
{ {
struct devlink *devlink = hdev->devlink; struct devlink *devlink = hdev->devlink;
if (!devlink)
return;
devlink_reload_disable(devlink); devlink_reload_disable(devlink);
devlink_unregister(devlink); devlink_unregister(devlink);
devlink_free(devlink); devlink_free(devlink);
hdev->devlink = NULL;
} }
...@@ -119,6 +119,7 @@ int hclgevf_devlink_init(struct hclgevf_dev *hdev) ...@@ -119,6 +119,7 @@ int hclgevf_devlink_init(struct hclgevf_dev *hdev)
priv = devlink_priv(devlink); priv = devlink_priv(devlink);
priv->hdev = hdev; priv->hdev = hdev;
hdev->devlink = devlink;
ret = devlink_register(devlink, &pdev->dev); ret = devlink_register(devlink, &pdev->dev);
if (ret) { if (ret) {
...@@ -127,8 +128,6 @@ int hclgevf_devlink_init(struct hclgevf_dev *hdev) ...@@ -127,8 +128,6 @@ int hclgevf_devlink_init(struct hclgevf_dev *hdev)
goto out_reg_fail; goto out_reg_fail;
} }
hdev->devlink = devlink;
devlink_reload_enable(devlink); devlink_reload_enable(devlink);
return 0; return 0;
...@@ -142,14 +141,9 @@ void hclgevf_devlink_uninit(struct hclgevf_dev *hdev) ...@@ -142,14 +141,9 @@ void hclgevf_devlink_uninit(struct hclgevf_dev *hdev)
{ {
struct devlink *devlink = hdev->devlink; struct devlink *devlink = hdev->devlink;
if (!devlink)
return;
devlink_reload_disable(devlink); devlink_reload_disable(devlink);
devlink_unregister(devlink); devlink_unregister(devlink);
devlink_free(devlink); devlink_free(devlink);
hdev->devlink = NULL;
} }
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册