The function radeon_get_connector_for_encoder() can return NULL
and its result is checked before dereference in all functions
except atombios_set_encoder_crtc_source().

Add a NULL pointer check before dereference.

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

Fixes: a4863ca93ccc ("drm/radeon/kms/DCE4.1: fix Select_CrtcSource EncodeMode 
setting for DP bridges (v2)")
Signed-off-by: Igor Artemiev <igor.a.artem...@mcst.ru>
---
 drivers/gpu/drm/radeon/atombios_encoders.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/radeon/atombios_encoders.c 
b/drivers/gpu/drm/radeon/atombios_encoders.c
index d1c5e471bdca..0cda4e6749f0 100644
--- a/drivers/gpu/drm/radeon/atombios_encoders.c
+++ b/drivers/gpu/drm/radeon/atombios_encoders.c
@@ -1913,9 +1913,9 @@ atombios_set_encoder_crtc_source(struct drm_encoder 
*encoder)
                        if (radeon_encoder_get_dp_bridge_encoder_id(encoder) != 
ENCODER_OBJECT_ID_NONE) {
                                struct drm_connector *connector = 
radeon_get_connector_for_encoder(encoder);
 
-                               if (connector->connector_type == 
DRM_MODE_CONNECTOR_LVDS)
+                               if (connector && connector->connector_type == 
DRM_MODE_CONNECTOR_LVDS)
                                        args.v2.ucEncodeMode = 
ATOM_ENCODER_MODE_LVDS;
-                               else if (connector->connector_type == 
DRM_MODE_CONNECTOR_VGA)
+                               else if (connector && connector->connector_type 
== DRM_MODE_CONNECTOR_VGA)
                                        args.v2.ucEncodeMode = 
ATOM_ENCODER_MODE_CRT;
                                else
                                        args.v2.ucEncodeMode = 
atombios_get_encoder_mode(encoder);
-- 
2.39.2


Reply via email to