drm/i915: Bail if plane/crtc init fails
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Tue, 25 Oct 2016 15:58:02 +0000 (18:58 +0300)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Mon, 31 Oct 2016 14:56:32 +0000 (16:56 +0200)
commitb079bd17e301708da044b4ea114f44c4aa47160c
treed2934653aadccbe07ec5e91ff842e43335d433ac
parenta81d6fa0966b88b1ddd79302d7d351d493c4db9d
drm/i915: Bail if plane/crtc init fails

Due to the plane->index not getting readjusted in drm_plane_cleanup(),
we can't continue initialization of some plane/crtc init fails.
Well, we sort of could I suppose if we left all initialized planes on
the list, but that would expose those planes to userspace as well.

But for crtcs the situation is even worse since we assume that
pipe==crtc index occasionally, so we can't really deal with a partially
initialize set of crtcs.

So seems safest to just abort the entire thing if anything goes wrong.
All the failure paths here are kmalloc()s anyway, so it seems unlikely
we'd get very far if these start failing.

v2: Add (enum plane) case to silence gcc

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1477411083-19255-4-git-send-email-ville.syrjala@linux.intel.com
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/i915_drv.c
drivers/gpu/drm/i915/i915_drv.h
drivers/gpu/drm/i915/intel_display.c
drivers/gpu/drm/i915/intel_drv.h
drivers/gpu/drm/i915/intel_sprite.c