linux-hardened/drivers/gpu/drm/i915
Ville Syrjälä b079bd17e3 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>
2016-10-31 16:56:32 +02:00
..
gvt drm/i915: Rearrange i915_wait_request() accounting with callers 2016-10-28 20:53:43 +01:00
dvo.h
dvo_ch7xxx.c
dvo_ch7017.c
dvo_ivch.c
dvo_ns2501.c
dvo_sil164.c
dvo_tfp410.c
i915_cmd_parser.c drm/i915: Refactor object page API 2016-10-28 20:53:46 +01:00
i915_debugfs.c drm/i915: Reserve space in the global seqno during request allocation 2016-10-28 20:53:56 +01:00
i915_drv.c drm/i915: Bail if plane/crtc init fails 2016-10-31 16:56:32 +02:00
i915_drv.h drm/i915: Bail if plane/crtc init fails 2016-10-31 16:56:32 +02:00
i915_gem.c drm/i915: Enable multiple timelines 2016-10-28 20:53:57 +01:00
i915_gem.h drm/i915: Combine seqno + tracking into a global timeline struct 2016-10-28 20:53:51 +01:00
i915_gem_batch_pool.c drm/i915: Move GEM activity tracking into a common struct reservation_object 2016-10-28 20:53:50 +01:00
i915_gem_batch_pool.h
i915_gem_context.c drm/i915: Enable multiple timelines 2016-10-28 20:53:57 +01:00
i915_gem_dmabuf.c drm/i915: Move GEM activity tracking into a common struct reservation_object 2016-10-28 20:53:50 +01:00
i915_gem_evict.c drm/i915: Enable multiple timelines 2016-10-28 20:53:57 +01:00
i915_gem_execbuffer.c drm/i915: Move GEM activity tracking into a common struct reservation_object 2016-10-28 20:53:50 +01:00
i915_gem_fence.c drm/i915: Pass around sg_table to get_pages/put_pages backend 2016-10-28 20:53:47 +01:00
i915_gem_gtt.c drm/i915: Enable multiple timelines 2016-10-28 20:53:57 +01:00
i915_gem_gtt.h drm/i915: Enable multiple timelines 2016-10-28 20:53:57 +01:00
i915_gem_internal.c drm/i915: Pass around sg_table to get_pages/put_pages backend 2016-10-28 20:53:47 +01:00
i915_gem_render_state.c drm/i915: Refactor object page API 2016-10-28 20:53:46 +01:00
i915_gem_render_state.h drm/i915: Reuse the active golden render state batch 2016-10-28 20:53:44 +01:00
i915_gem_request.c drm/i915: Enable multiple timelines 2016-10-28 20:53:57 +01:00
i915_gem_request.h drm/i915: Introduce a global_seqno for each request 2016-10-28 20:53:53 +01:00
i915_gem_shrinker.c drm/i915: Mark up obj->mm.lock for shrinker 2016-10-31 13:28:46 +00:00
i915_gem_stolen.c drm/i915: Pass around sg_table to get_pages/put_pages backend 2016-10-28 20:53:47 +01:00
i915_gem_tiling.c drm/i915: Use lockless object free 2016-10-28 20:53:50 +01:00
i915_gem_timeline.c drm/i915: Enable multiple timelines 2016-10-28 20:53:57 +01:00
i915_gem_timeline.h drm/i915: Enable multiple timelines 2016-10-28 20:53:57 +01:00
i915_gem_userptr.c drm/i915: Use lockless object free 2016-10-28 20:53:50 +01:00
i915_gpu_error.c drm/i915: Convert breadcrumbs spinlock to be irqsafe 2016-10-28 20:53:55 +01:00
i915_guc_reg.h drm/i915/guc: general tidying up (loader) 2016-09-15 10:56:02 +01:00
i915_guc_submission.c drm/i915: Introduce a global_seqno for each request 2016-10-28 20:53:53 +01:00
i915_ioc32.c
i915_irq.c drm/i915: Combine seqno + tracking into a global timeline struct 2016-10-28 20:53:51 +01:00
i915_memcpy.c drm/i915: Mark the static key for movntqda as static 2016-08-17 12:36:07 +01:00
i915_mm.c drm/i915: Use remap_io_mapping() to prefault all PTE in a single pass 2016-08-19 17:13:36 +01:00
i915_params.c drm/i915: Allow disabling error capture 2016-10-12 12:00:32 +01:00
i915_params.h drm/i915: Allow disabling error capture 2016-10-12 12:00:32 +01:00
i915_pci.c drm/i915: keep declarations in i915_drv.h 2016-09-22 14:53:29 +03:00
i915_pvinfo.h
i915_reg.h drm/i915: Address broxton phy registers based on phy and channel number 2016-10-28 12:25:24 +03:00
i915_suspend.c drm/i915: Make IS_GEN macros only take dev_priv 2016-10-14 12:23:22 +01:00
i915_sw_fence.c drm/i915: Allow i915_sw_fence_await_sw_fence() to allocate 2016-10-28 20:53:42 +01:00
i915_sw_fence.h drm/i915: Allow i915_sw_fence_await_sw_fence() to allocate 2016-10-28 20:53:42 +01:00
i915_sysfs.c drm/i915: Allow disabling error capture 2016-10-12 12:00:32 +01:00
i915_trace.h drm/i915: Introduce a global_seqno for each request 2016-10-28 20:53:53 +01:00
i915_trace_points.c
i915_vgpu.c Merge tag 'drm-intel-next-2016-09-19' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-09-20 06:23:22 +10:00
i915_vgpu.h
intel_acpi.c
intel_atomic.c
intel_atomic_plane.c drm/i915: Move GEM activity tracking into a common struct reservation_object 2016-10-28 20:53:50 +01:00
intel_audio.c drm/i915/audio: set proper N/M in modeset 2016-10-26 12:36:30 +03:00
intel_bios.c drm/i915: Clean up DDI DDC/AUX CH sanitation 2016-10-21 15:43:40 +03:00
intel_bios.h
intel_breadcrumbs.c drm/i915: Convert breadcrumbs spinlock to be irqsafe 2016-10-28 20:53:55 +01:00
intel_color.c drm/i915: Make IS_CHERRYVIEW only take dev_priv 2016-10-14 12:23:19 +01:00
intel_crt.c drm/i915: Make IS_GEN macros only take dev_priv 2016-10-14 12:23:22 +01:00
intel_csr.c drm/i915/DMC/KBL: Load DMC on KBL using the no_stepping_info array 2016-10-26 14:20:53 -07:00
intel_ddi.c drm/i915: Move broxton vswing sequence to intel_dpio_phy.c 2016-10-28 12:24:45 +03:00
intel_device_info.c drm/i915: Don't try to initialize sprite planes on pre-ilk 2016-10-31 16:56:32 +02:00
intel_display.c drm/i915: Bail if plane/crtc init fails 2016-10-31 16:56:32 +02:00
intel_dp.c drm/i915: Change the placement of some static functions in intel_dp.c 2016-10-28 15:06:31 +03:00
intel_dp_aux_backlight.c
intel_dp_link_training.c drm/i915/skl: drop workarounds for A0 and B0 revisions 2016-09-26 12:08:22 +03:00
intel_dp_mst.c Revert "drm/i915: start adding dp mst audio" 2016-09-29 11:02:41 +03:00
intel_dpio_phy.c drm/i915: Address broxton phy registers based on phy and channel number 2016-10-28 12:25:24 +03:00
intel_dpll_mgr.c drm/i915: Address broxton phy registers based on phy and channel number 2016-10-28 12:25:24 +03:00
intel_dpll_mgr.h drm/i915/dp: Add a standalone function to obtain shared dpll for HSW/BDW/SKL/BXT 2016-09-09 14:53:18 -07:00
intel_drv.h drm/i915: Bail if plane/crtc init fails 2016-10-31 16:56:32 +02:00
intel_dsi.c drm/i915: Make IS_CHERRYVIEW only take dev_priv 2016-10-14 12:23:19 +01:00
intel_dsi.h
intel_dsi_dcs_backlight.c
intel_dsi_panel_vbt.c drm/i915/dsi: double check element parsing against size if present 2016-09-19 18:38:11 +03:00
intel_dsi_pll.c drm/i915: Make IS_BROXTON only take dev_priv 2016-10-14 12:23:19 +01:00
intel_dvo.c drm/i915: Store port enum in intel_encoder 2016-09-21 09:32:00 -07:00
intel_engine_cs.c drm/i915: Move the global sync optimisation to the timeline 2016-10-28 20:53:54 +01:00
intel_fbc.c Merge remote-tracking branch 'airlied/drm-next' into drm-intel-next-queued 2016-10-25 08:57:53 +02:00
intel_fbdev.c drm/i915: pdev cleanup 2016-08-22 12:19:52 +01:00
intel_fifo_underrun.c drm/i915: Make IS_GEN macros only take dev_priv 2016-10-14 12:23:22 +01:00
intel_frontbuffer.c
intel_frontbuffer.h
intel_guc.h drm/i915: Debugfs support for GuC logging control 2016-10-25 09:34:23 +01:00
intel_guc_fwif.h drm/i915: Increase GuC log buffer size to reduce flush interrupts 2016-10-25 09:34:23 +01:00
intel_guc_loader.c drm/i915: Support for GuC interrupts 2016-10-25 09:34:06 +01:00
intel_gvt.c Documentation/gpu: Add section for Intel GVT-g host support 2016-10-20 17:18:39 +08:00
intel_gvt.h drm/i915/gvt: clean up intel_gvt.h as interface for i915 core 2016-10-20 17:18:30 +08:00
intel_hdmi.c drm/i915: Respect alternate_ddc_pin for all DDI ports 2016-10-21 15:43:40 +03:00
intel_hotplug.c drm/i915: Mark i915_hpd_poll_init_work as static 2016-08-17 12:36:15 +01:00
intel_i2c.c drm/i915: GMBUS don't need no forcewake 2016-10-17 14:26:42 +03:00
intel_lrc.c drm/i915: Defer breadcrumb emission 2016-10-28 20:53:54 +01:00
intel_lrc.h drm/i915: Update reset path to fix incomplete requests 2016-09-09 14:23:05 +01:00
intel_lspcon.c drm/i915/lspcon: Add workaround for resuming in PCON mode 2016-10-26 12:41:01 +03:00
intel_lvds.c drm/i915: Make IS_GEN macros only take dev_priv 2016-10-14 12:23:22 +01:00
intel_mocs.c
intel_mocs.h
intel_modes.c
intel_opregion.c drm/i915: Ignore OpRegion panel type except on select machines 2016-09-14 11:25:05 +03:00
intel_overlay.c drm/i915: Use lockless object free 2016-10-28 20:53:50 +01:00
intel_panel.c drm/i915/backlight: setup backlight pwm alternate increment on backlight enable 2016-10-10 16:05:52 +03:00
intel_pm.c drm/i915: Use lockless object free 2016-10-28 20:53:50 +01:00
intel_psr.c drm/i915: Make IS_CHERRYVIEW only take dev_priv 2016-10-14 12:23:19 +01:00
intel_renderstate.h
intel_renderstate_gen6.c
intel_renderstate_gen7.c
intel_renderstate_gen8.c
intel_renderstate_gen9.c
intel_ringbuffer.c drm/i915: Move the global sync optimisation to the timeline 2016-10-28 20:53:54 +01:00
intel_ringbuffer.h drm/i915: Enable multiple timelines 2016-10-28 20:53:57 +01:00
intel_runtime_pm.c drm/i915/vlv: Prevent enabling hpd polling in late suspend 2016-10-29 14:55:43 +03:00
intel_sdvo.c drm/i915: Make INTEL_DEVID only take dev_priv 2016-10-14 12:23:19 +01:00
intel_sdvo_regs.h
intel_sideband.c
intel_sprite.c drm/i915: Bail if plane/crtc init fails 2016-10-31 16:56:32 +02:00
intel_tv.c drm/i915: Make INTEL_DEVID only take dev_priv 2016-10-14 12:23:19 +01:00
intel_uncore.c drm/i915: Just clear the mmiodebug before a register access 2016-10-10 16:06:41 +03:00
intel_vbt_defs.h
Kconfig Merge tag 'gvt-next-2016-10-27' of https://github.com/01org/gvt-linux into drm-intel-next-queued 2016-10-27 10:33:17 +02:00
Kconfig.debug
Makefile drm/i915: Combine seqno + tracking into a global timeline struct 2016-10-28 20:53:51 +01:00