drm/i915/sdvo: Check error return from intel_sdvo_get_value()
authorImre Deak <imre.deak@intel.com>
Wed, 10 May 2017 09:21:49 +0000 (12:21 +0300)
committerImre Deak <imre.deak@intel.com>
Wed, 10 May 2017 10:47:43 +0000 (13:47 +0300)
The current code assumes that 'enhancements' won't change in case of an
error, but this isn't guaranteed. Fix things by treating any error as a
lack of the given capability.

v2:
- Remove the now redundant init of enhancements. (Ville)

Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1494408113-379-3-git-send-email-imre.deak@intel.com
drivers/gpu/drm/i915/intel_sdvo.c

index 816a6f5..496b24c 100644 (file)
@@ -2892,11 +2892,10 @@ static bool intel_sdvo_create_enhance_property(struct intel_sdvo *intel_sdvo,
 
        BUILD_BUG_ON(sizeof(enhancements) != 2);
 
-       enhancements.response = 0;
-       intel_sdvo_get_value(intel_sdvo,
-                            SDVO_CMD_GET_SUPPORTED_ENHANCEMENTS,
-                            &enhancements, sizeof(enhancements));
-       if (enhancements.response == 0) {
+       if (!intel_sdvo_get_value(intel_sdvo,
+                                 SDVO_CMD_GET_SUPPORTED_ENHANCEMENTS,
+                                 &enhancements, sizeof(enhancements)) ||
+           enhancements.response == 0) {
                DRM_DEBUG_KMS("No enhancement is supported\n");
                return true;
        }