]> git.baikalelectronics.ru Git - kernel.git/commit
drm/i915/opregion: check port number bounds for SWSCI display power state
authorJani Nikula <jani.nikula@intel.com>
Thu, 10 Feb 2022 10:36:42 +0000 (12:36 +0200)
committerTvrtko Ursulin <tvrtko.ursulin@intel.com>
Mon, 14 Feb 2022 09:52:56 +0000 (09:52 +0000)
commitfa77e52a6810d7f1e168cc66c1be4c5be6af3bf9
tree7f146d5fec0533d380477cb37381f64c8fadb279
parent60e454c2f14e285676c2df774ef08ad1e160fae8
drm/i915/opregion: check port number bounds for SWSCI display power state

The mapping from enum port to whatever port numbering scheme is used by
the SWSCI Display Power State Notification is odd, and the memory of it
has faded. In any case, the parameter only has space for ports numbered
[0..4], and UBSAN reports bit shift beyond it when the platform has port
F or more.

Since the SWSCI functionality is supposed to be obsolete for new
platforms (i.e. ones that might have port F or more), just bail out
early if the mapped and mangled port number is beyond what the Display
Power State Notification can support.

Fixes: 8be77bdfd167 ("drm/i915: add opregion function to notify bios of encoder enable/disable")
Cc: <stable@vger.kernel.org> # v3.13+
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/4800
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/cc363f42d6b5a5932b6d218fefcc8bdfb15dbbe5.1644489329.git.jani.nikula@intel.com
(cherry picked from commit 24a644ebbfd3b13cda702f98907f9dd123e34bf9)
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
drivers/gpu/drm/i915/display/intel_opregion.c