drm/i915: Fix return type of mode_valid function hook
authorNathan Huckleberry <nhuck@google.com>
Tue, 13 Sep 2022 20:55:27 +0000 (13:55 -0700)
committerJani Nikula <jani.nikula@intel.com>
Thu, 15 Sep 2022 07:28:55 +0000 (10:28 +0300)
All of the functions used for intel_dvo_dev_ops.mode_valid have a return
type of enum drm_mode_status, but the mode_valid field in the struct
definition has a return type of int.

The mismatched return type breaks forward edge kCFI since the underlying
function definitions do not match the function hook definition.

The return type of the mode_valid field should be changed from int to
enum drm_mode_status.

Reported-by: Dan Carpenter <error27@gmail.com>
Link: https://github.com/ClangBuiltLinux/linux/issues/1703
Cc: llvm@lists.linux.dev
Signed-off-by: Nathan Huckleberry <nhuck@google.com>
Reviewed-by: Nathan Chancellor <nathan@kernel.org>
Reviewed-by: Andrzej Hajda <andrzej.hajda@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220913205531.155046-1-nhuck@google.com
drivers/gpu/drm/i915/display/intel_dvo_dev.h

index d96c3cc46e50876c07982734a856cc6adfabd7f8..50205f064d932552e3dd3cfc9dedd7e0b767ffa1 100644 (file)
@@ -75,8 +75,8 @@ struct intel_dvo_dev_ops {
         *
         * \return MODE_OK if the mode is valid, or another MODE_* otherwise.
         */
-       int (*mode_valid)(struct intel_dvo_device *dvo,
-                         struct drm_display_mode *mode);
+       enum drm_mode_status (*mode_valid)(struct intel_dvo_device *dvo,
+                                          struct drm_display_mode *mode);
 
        /*
         * Callback for preparing mode changes on an output