mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 11:18:45 +07:00
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: Huazhong Tan <tanhuazhong@huawei.com> Signed-off-by: Peng Li <lipeng321@huawei.com> Signed-off-by: Salil Mehta <salil.mehta@huawei.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
ffd5656e18
commit
c5ef83cbb1
@ -5503,11 +5503,13 @@ static int hclge_init_ae_dev(struct hnae3_ae_dev *ae_dev)
|
||||
goto err_sriov_disable;
|
||||
}
|
||||
|
||||
ret = hclge_mac_mdio_config(hdev);
|
||||
if (ret) {
|
||||
dev_warn(&hdev->pdev->dev,
|
||||
"mdio config fail ret=%d\n", ret);
|
||||
goto err_sriov_disable;
|
||||
if (hdev->hw.mac.media_type == HNAE3_MEDIA_TYPE_COPPER) {
|
||||
ret = hclge_mac_mdio_config(hdev);
|
||||
if (ret) {
|
||||
dev_err(&hdev->pdev->dev,
|
||||
"mdio config fail ret=%d\n", ret);
|
||||
goto err_sriov_disable;
|
||||
}
|
||||
}
|
||||
|
||||
ret = hclge_mac_init(hdev);
|
||||
|
@ -140,8 +140,11 @@ int hclge_mac_mdio_config(struct hclge_dev *hdev)
|
||||
struct mii_bus *mdio_bus;
|
||||
int ret;
|
||||
|
||||
if (hdev->hw.mac.phy_addr >= PHY_MAX_ADDR)
|
||||
return 0;
|
||||
if (hdev->hw.mac.phy_addr >= PHY_MAX_ADDR) {
|
||||
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);
|
||||
if (!mdio_bus)
|
||||
|
Loading…
Reference in New Issue
Block a user