]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
phy: cadence-torrent: Check return value on register read
authorMa Ke <make24@iscas.ac.cn>
Tue, 2 Jul 2024 03:20:42 +0000 (11:20 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 3 Aug 2024 07:00:59 +0000 (09:00 +0200)
[ Upstream commit 967969cf594ed3c1678a9918d6e9bb2d1591cbe9 ]

cdns_torrent_dp_set_power_state() does not consider that ret might be
overwritten. Add return value check of regmap_read_poll_timeout() after
register read in cdns_torrent_dp_set_power_state().

Fixes: 5b16a790f18d ("phy: cadence-torrent: Reorder few functions to remove function declarations")
Signed-off-by: Ma Ke <make24@iscas.ac.cn>
Reviewed-by: Roger Quadros <rogerq@kernel.org>
Link: https://lore.kernel.org/r/20240702032042.3993031-1-make24@iscas.ac.cn
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/phy/cadence/phy-cadence-torrent.c

index 95924a09960cce0bd0fdeb88639940d584226aad..6113f0022e6eeee9271da1038debb49efdd15511 100644 (file)
@@ -1156,6 +1156,9 @@ static int cdns_torrent_dp_set_power_state(struct cdns_torrent_phy *cdns_phy,
        ret = regmap_read_poll_timeout(regmap, PHY_PMA_XCVR_POWER_STATE_ACK,
                                       read_val, (read_val & mask) == value, 0,
                                       POLL_TIMEOUT_US);
+       if (ret)
+               return ret;
+
        cdns_torrent_dp_write(regmap, PHY_PMA_XCVR_POWER_STATE_REQ, 0x00000000);
        ndelay(100);