In function rockchip_usb3_phy_power_on(), local variable
"val" could be uninitialized if function regmap_read()
returns -EINVAL. However, this value is directly used in
later context. This is potentially unsafe.

Signed-off-by: Yizhuo <[email protected]>
---
 drivers/phy/rockchip/phy-rockchip-typec.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/phy/rockchip/phy-rockchip-typec.c 
b/drivers/phy/rockchip/phy-rockchip-typec.c
index a958c9bced01..b1e24418cb2d 100644
--- a/drivers/phy/rockchip/phy-rockchip-typec.c
+++ b/drivers/phy/rockchip/phy-rockchip-typec.c
@@ -716,7 +716,10 @@ static int rockchip_usb3_phy_power_on(struct phy *phy)
 
        /* wait TCPHY for pipe ready */
        for (timeout = 0; timeout < 100; timeout++) {
-               regmap_read(tcphy->grf_regs, reg->offset, &val);
+               ret = regmap_read(tcphy->grf_regs, reg->offset, &val);
+               if (ret)
+                       goto unlock_ret;
+
                if (!(val & BIT(reg->enable_bit))) {
                        tcphy->mode |= new_mode & (MODE_DFP_USB | MODE_UFP_USB);
                        goto unlock_ret;
-- 
2.17.1

Reply via email to