mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-01-11 17:10:13 +00:00
net: hns3: return error code when function fails
Currently, in hclge_mii_ioctl(), the operation to
read the PHY register (SIOCGMIIREG) always returns 0.
This patch changes the return type of hclge_read_phy_reg(),
returning an error code when the function fails.
Fixes: 024712f51e57 ("net: hns3: add ioctl support for imp-controlled PHYs")
Signed-off-by: Jijie Shao <shaojijie@huawei.com>
Reviewed-by: Alexander Lobakin <aleksander.lobakin@intel.com>
Link: https://patch.msgid.link/20251023131338.2642520-2-shaojijie@huawei.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
e3a0ca09ac
commit
03ca7c8c42
@ -9429,8 +9429,7 @@ static int hclge_mii_ioctl(struct hclge_dev *hdev, struct ifreq *ifr, int cmd)
|
||||
/* this command reads phy id and register at the same time */
|
||||
fallthrough;
|
||||
case SIOCGMIIREG:
|
||||
data->val_out = hclge_read_phy_reg(hdev, data->reg_num);
|
||||
return 0;
|
||||
return hclge_read_phy_reg(hdev, data->reg_num, &data->val_out);
|
||||
|
||||
case SIOCSMIIREG:
|
||||
return hclge_write_phy_reg(hdev, data->reg_num, data->val_in);
|
||||
|
||||
@ -274,7 +274,7 @@ void hclge_mac_stop_phy(struct hclge_dev *hdev)
|
||||
phy_stop(phydev);
|
||||
}
|
||||
|
||||
u16 hclge_read_phy_reg(struct hclge_dev *hdev, u16 reg_addr)
|
||||
int hclge_read_phy_reg(struct hclge_dev *hdev, u16 reg_addr, u16 *val)
|
||||
{
|
||||
struct hclge_phy_reg_cmd *req;
|
||||
struct hclge_desc desc;
|
||||
@ -286,11 +286,14 @@ u16 hclge_read_phy_reg(struct hclge_dev *hdev, u16 reg_addr)
|
||||
req->reg_addr = cpu_to_le16(reg_addr);
|
||||
|
||||
ret = hclge_cmd_send(&hdev->hw, &desc, 1);
|
||||
if (ret)
|
||||
if (ret) {
|
||||
dev_err(&hdev->pdev->dev,
|
||||
"failed to read phy reg, ret = %d.\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
return le16_to_cpu(req->reg_val);
|
||||
*val = le16_to_cpu(req->reg_val);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int hclge_write_phy_reg(struct hclge_dev *hdev, u16 reg_addr, u16 val)
|
||||
|
||||
@ -13,7 +13,7 @@ int hclge_mac_connect_phy(struct hnae3_handle *handle);
|
||||
void hclge_mac_disconnect_phy(struct hnae3_handle *handle);
|
||||
void hclge_mac_start_phy(struct hclge_dev *hdev);
|
||||
void hclge_mac_stop_phy(struct hclge_dev *hdev);
|
||||
u16 hclge_read_phy_reg(struct hclge_dev *hdev, u16 reg_addr);
|
||||
int hclge_read_phy_reg(struct hclge_dev *hdev, u16 reg_addr, u16 *val);
|
||||
int hclge_write_phy_reg(struct hclge_dev *hdev, u16 reg_addr, u16 val);
|
||||
|
||||
#endif
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user