Commit 03ca7c8c authored by Jijie Shao's avatar Jijie Shao Committed by Jakub Kicinski
Browse files

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: 024712f5 ("net: hns3: add ioctl support for imp-controlled PHYs")
Signed-off-by: default avatarJijie Shao <shaojijie@huawei.com>
Reviewed-by: default avatarAlexander Lobakin <aleksander.lobakin@intel.com>
Link: https://patch.msgid.link/20251023131338.2642520-2-shaojijie@huawei.com


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent e3a0ca09
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -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);
+6 −3
Original line number Diff line number Diff line
@@ -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)
+1 −1
Original line number Diff line number Diff line
@@ -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