Skip to content

Commit 03ca7c8

Browse files
Jijie Shaokuba-moo
authored andcommitted
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: 024712f ("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>
1 parent e3a0ca0 commit 03ca7c8

3 files changed

Lines changed: 8 additions & 6 deletions

File tree

drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9429,8 +9429,7 @@ static int hclge_mii_ioctl(struct hclge_dev *hdev, struct ifreq *ifr, int cmd)
94299429
/* this command reads phy id and register at the same time */
94309430
fallthrough;
94319431
case SIOCGMIIREG:
9432-
data->val_out = hclge_read_phy_reg(hdev, data->reg_num);
9433-
return 0;
9432+
return hclge_read_phy_reg(hdev, data->reg_num, &data->val_out);
94349433

94359434
case SIOCSMIIREG:
94369435
return hclge_write_phy_reg(hdev, data->reg_num, data->val_in);

drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mdio.c

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -274,7 +274,7 @@ void hclge_mac_stop_phy(struct hclge_dev *hdev)
274274
phy_stop(phydev);
275275
}
276276

277-
u16 hclge_read_phy_reg(struct hclge_dev *hdev, u16 reg_addr)
277+
int hclge_read_phy_reg(struct hclge_dev *hdev, u16 reg_addr, u16 *val)
278278
{
279279
struct hclge_phy_reg_cmd *req;
280280
struct hclge_desc desc;
@@ -286,11 +286,14 @@ u16 hclge_read_phy_reg(struct hclge_dev *hdev, u16 reg_addr)
286286
req->reg_addr = cpu_to_le16(reg_addr);
287287

288288
ret = hclge_cmd_send(&hdev->hw, &desc, 1);
289-
if (ret)
289+
if (ret) {
290290
dev_err(&hdev->pdev->dev,
291291
"failed to read phy reg, ret = %d.\n", ret);
292+
return ret;
293+
}
292294

293-
return le16_to_cpu(req->reg_val);
295+
*val = le16_to_cpu(req->reg_val);
296+
return 0;
294297
}
295298

296299
int hclge_write_phy_reg(struct hclge_dev *hdev, u16 reg_addr, u16 val)

drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mdio.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ int hclge_mac_connect_phy(struct hnae3_handle *handle);
1313
void hclge_mac_disconnect_phy(struct hnae3_handle *handle);
1414
void hclge_mac_start_phy(struct hclge_dev *hdev);
1515
void hclge_mac_stop_phy(struct hclge_dev *hdev);
16-
u16 hclge_read_phy_reg(struct hclge_dev *hdev, u16 reg_addr);
16+
int hclge_read_phy_reg(struct hclge_dev *hdev, u16 reg_addr, u16 *val);
1717
int hclge_write_phy_reg(struct hclge_dev *hdev, u16 reg_addr, u16 val);
1818

1919
#endif

0 commit comments

Comments
 (0)