drm/i915/display: fix missing null check on allocated dsb object
authorColin Ian King <colin.king@canonical.com>
Tue, 16 Jun 2020 11:42:21 +0000 (12:42 +0100)
committerJani Nikula <jani.nikula@intel.com>
Tue, 30 Jun 2020 11:26:51 +0000 (14:26 +0300)
Currently there is no null check for a failed memory allocation
on the dsb object and without this a null pointer dereference
error can occur. Fix this by adding a null check.

Note: added a drm_err message in keeping with the error message style
in the function.

Addresses-Coverity: ("Dereference null return")
Fixes: afeda4f3b1c8 ("drm/i915/dsb: Pre allocate and late cleanup of cmd buffer")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200616114221.73971-1-colin.king@canonical.com
drivers/gpu/drm/i915/display/intel_dsb.c

index 24e6d63..566fa72 100644 (file)
@@ -271,6 +271,10 @@ void intel_dsb_prepare(struct intel_crtc_state *crtc_state)
                return;
 
        dsb = kmalloc(sizeof(*dsb), GFP_KERNEL);
+       if (!dsb) {
+               drm_err(&i915->drm, "DSB object creation failed\n");
+               return;
+       }
 
        wakeref = intel_runtime_pm_get(&i915->runtime_pm);