drm/i915: Don't dereference NULL plane while setting up scalers
authorMatt Roper <matthew.d.roper@intel.com>
Mon, 6 Jul 2015 16:19:24 +0000 (09:19 -0700)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Mon, 6 Jul 2015 19:23:36 +0000 (21:23 +0200)
intel_atomic_setup_scalers() dereferences 'plane' before the plane has
been assigned.  The plane ID assignment doing this dereference is only
needed for debugging messages later in the function, so just move the
assignment farther down the function to a point where plane will no
longer be NULL.

This was introduced in:

        commit 133b0d128be39e308ccd3b3d765c31ebdbf5380e
        Author: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
        Date:   Mon Jun 15 12:33:39 2015 +0200

            drm/i915: Clean up intel_atomic_setup_scalers slightly.

Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Bob Paauwe <bob.j.paauwe@intel.com>
Reported-by: Bob Paauwe <bob.j.paauwe@intel.com>
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_atomic.c

index 0aeced8..5c79a31 100644 (file)
@@ -325,7 +325,6 @@ int intel_atomic_setup_scalers(struct drm_device *dev,
                        scaler_id = &scaler_state->scaler_id;
                } else {
                        name = "PLANE";
-                       idx = plane->base.id;
 
                        if (!drm_state)
                                continue;
@@ -359,6 +358,7 @@ int intel_atomic_setup_scalers(struct drm_device *dev,
                        }
 
                        intel_plane = to_intel_plane(plane);
+                       idx = plane->base.id;
 
                        /* plane on different crtc cannot be a scaler user of this crtc */
                        if (WARN_ON(intel_plane->pipe != intel_crtc->pipe)) {