drm/i915/display: Handle invalid fb_modifier in intel_fb_modifier_to_tiling
authorJouni Högander <jouni.hogander@intel.com>
Sun, 3 Dec 2023 11:48:39 +0000 (13:48 +0200)
committerJouni Högander <jouni.hogander@intel.com>
Mon, 4 Dec 2023 05:26:29 +0000 (07:26 +0200)
Lookup_modifier is returning INTEL_PLANE_CAP_TILING_4 on invalid
fb_modifier value. Use lookup_modifier_or_null in
intel_fb_modifier_to_tiling and return I915_TILING_NONE in case
lookup_modifier_or_null returns null.

Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20231203114840.841311-4-jouni.hogander@intel.com
drivers/gpu/drm/i915/display/intel_fb.c

index f42a693f96c177ce8cda399fe91f175b4faccaa3..20d58a021a42e72e7b69a1554d1eb31fc8ff23a8 100644 (file)
@@ -303,7 +303,14 @@ lookup_format_info(const struct drm_format_info formats[],
 
 unsigned int intel_fb_modifier_to_tiling(u64 fb_modifier)
 {
-       u8 tiling_caps = lookup_modifier(fb_modifier)->plane_caps &
+       const struct intel_modifier_desc *md;
+       u8 tiling_caps;
+
+       md = lookup_modifier_or_null(fb_modifier);
+       if (!md)
+               return I915_TILING_NONE;
+
+       tiling_caps = lookup_modifier_or_null(fb_modifier)->plane_caps &
                         INTEL_PLANE_CAP_TILING_MASK;
 
        switch (tiling_caps) {