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 0aeced82201e44a831d8ca2f08e67574fa9a8783..5c79a31603af6bc734623bb3d4f6abb1fe3e6656 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)) {