In anx78xx_start() err value of anx78xx_clear_bits()
overwriting without check.

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Signed-off-by: Artem Chernyshev <artem.chernys...@red-soft.ru>
---
 drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c 
b/drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
index 800555aef97f..c966e661b9b9 100644
--- a/drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
+++ b/drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
@@ -537,6 +537,10 @@ static int anx78xx_start(struct anx78xx *anx78xx)
                                 SP_POWERDOWN_CTRL_REG,
                                 SP_HDCP_PD | SP_AUDIO_PD | SP_VIDEO_PD |
                                 SP_LINK_PD);
+       if (err) {
+               DRM_ERROR("Failed to clear bits: %d\n", err);
+               goto err_poweroff;
+       }
 
        err = anx78xx_enable_interrupts(anx78xx);
        if (err) {
-- 
2.37.3

Reply via email to