[PATCH] phy: phy-uclass: Add a missing error handling path

Bhupesh Sharma bhupesh.sharma at linaro.org
Sun Jul 2 20:47:47 CEST 2023


Since function 'phy_get_counts()' can return NULL,
add handling for that error path inside callers of
this function.

Signed-off-by: Bhupesh Sharma <bhupesh.sharma at linaro.org>
---
 drivers/phy/phy-uclass.c | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/drivers/phy/phy-uclass.c b/drivers/phy/phy-uclass.c
index 629ef3aa3d..c523a0b45e 100644
--- a/drivers/phy/phy-uclass.c
+++ b/drivers/phy/phy-uclass.c
@@ -229,6 +229,11 @@ int generic_phy_init(struct phy *phy)
 	if (!generic_phy_valid(phy))
 		return 0;
 	counts = phy_get_counts(phy);
+	if (!counts) {
+		debug("phy_get_counts returns NULL\n");
+		return -ENODEV;
+	}
+
 	if (counts->init_count > 0) {
 		counts->init_count++;
 		return 0;
@@ -275,6 +280,11 @@ int generic_phy_exit(struct phy *phy)
 	if (!generic_phy_valid(phy))
 		return 0;
 	counts = phy_get_counts(phy);
+	if (!counts) {
+		debug("phy_get_counts returns NULL\n");
+		return -ENODEV;
+	}
+
 	if (counts->init_count == 0)
 		return 0;
 	if (counts->init_count > 1) {
@@ -305,6 +315,11 @@ int generic_phy_power_on(struct phy *phy)
 	if (!generic_phy_valid(phy))
 		return 0;
 	counts = phy_get_counts(phy);
+	if (!counts) {
+		debug("phy_get_counts returns NULL\n");
+		return -ENODEV;
+	}
+
 	if (counts->power_on_count > 0) {
 		counts->power_on_count++;
 		return 0;
@@ -341,6 +356,11 @@ int generic_phy_power_off(struct phy *phy)
 	if (!generic_phy_valid(phy))
 		return 0;
 	counts = phy_get_counts(phy);
+	if (!counts) {
+		debug("phy_get_counts returns NULL\n");
+		return -ENODEV;
+	}
+
 	if (counts->power_on_count == 0)
 		return 0;
 	if (counts->power_on_count > 1) {
-- 
2.38.1



More information about the U-Boot mailing list