Commit c5ef83cb authored by Huazhong Tan's avatar Huazhong Tan Committed by David S. Miller

net: hns3: fix for phy_addr error in hclge_mac_mdio_config

When phy exists, phy_addr must less than PHY_MAX_ADDR.
If not, hclge_mac_mdio_config should return error.
And for fiber(phy_addr=0xff), it does not need hclge_mac_mdio_config.
Signed-off-by: default avatarHuazhong Tan <tanhuazhong@huawei.com>
Signed-off-by: default avatarPeng Li <lipeng321@huawei.com>
Signed-off-by: default avatarSalil Mehta <salil.mehta@huawei.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent ffd5656e
...@@ -5503,12 +5503,14 @@ static int hclge_init_ae_dev(struct hnae3_ae_dev *ae_dev) ...@@ -5503,12 +5503,14 @@ static int hclge_init_ae_dev(struct hnae3_ae_dev *ae_dev)
goto err_sriov_disable; goto err_sriov_disable;
} }
if (hdev->hw.mac.media_type == HNAE3_MEDIA_TYPE_COPPER) {
ret = hclge_mac_mdio_config(hdev); ret = hclge_mac_mdio_config(hdev);
if (ret) { if (ret) {
dev_warn(&hdev->pdev->dev, dev_err(&hdev->pdev->dev,
"mdio config fail ret=%d\n", ret); "mdio config fail ret=%d\n", ret);
goto err_sriov_disable; goto err_sriov_disable;
} }
}
ret = hclge_mac_init(hdev); ret = hclge_mac_init(hdev);
if (ret) { if (ret) {
......
...@@ -140,8 +140,11 @@ int hclge_mac_mdio_config(struct hclge_dev *hdev) ...@@ -140,8 +140,11 @@ int hclge_mac_mdio_config(struct hclge_dev *hdev)
struct mii_bus *mdio_bus; struct mii_bus *mdio_bus;
int ret; int ret;
if (hdev->hw.mac.phy_addr >= PHY_MAX_ADDR) if (hdev->hw.mac.phy_addr >= PHY_MAX_ADDR) {
return 0; dev_err(&hdev->pdev->dev, "phy_addr(%d) is too large.\n",
hdev->hw.mac.phy_addr);
return -EINVAL;
}
mdio_bus = devm_mdiobus_alloc(&hdev->pdev->dev); mdio_bus = devm_mdiobus_alloc(&hdev->pdev->dev);
if (!mdio_bus) if (!mdio_bus)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment