linux_dsm_epyc7002/drivers/gpu/drm/i915
Ville Syrjälä 4e05047d3e drm/i915: Fix a potential integer overflow with framebuffers extending past 4 GiB
If we have framebuffers that are >= 4GiB in size we will overflow
the fb size check in intel_fill_fb_info().

Currently that is only possible with NV12 and CCS as offsets[1]
may be anything between 0 and 0xffffffff. offsets[0] is currently
required to be 0 so we can't hit the overflow with any single
plane format (thanks to max fb size of 8kx8k and max stride of
32 KiB).

In the future we may allow almost any framebuffer to exceed 4GiB
in size so we really should fix the overflow. Not that the overflow
is particularly dangerous. It's mostly just a sanity check against
insane userspace. The display engine can't write to memory anyway
so I suppose in the worst case we might anger the hw by attempting
scanout past the end of the ggtt, or we might scan out some data
that we're not supposed to see from other parts of the ggtt.

Note that triggering this overflow depends on the driver
aligning the fb height to the next tile boundary to push the
calculated size above 4GiB. With linear buffers the effective
tile height is one so that never happens, and the core already
has a check for 32bit overflow of offsets[]+pitches[]*height.

v2: Drop the unnecessary cast (Chris)

Testcase: igt/kms_big_fb/x-tiled-addfb-size-offset-overflow
Testcase: igt/kms_big_fb/y-tiled-addfb-size-offset-overflow
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20180912180443.28649-1-ville.syrjala@linux.intel.com
2018-09-13 22:42:51 +03:00
..
gvt Merge tag 'gvt-next-2018-09-04' of https://github.com/intel/gvt-linux into drm-intel-next-queued 2018-09-06 16:51:50 +03:00
selftests drm/i915: Reduce context HW ID lifetime 2018-09-05 11:58:08 +01:00
dvo_ch7xxx.c drm/i915/dvo: switch to kernel unsigned int types 2018-06-18 14:45:58 +03:00
dvo_ch7017.c drm/i915/dvo: switch to kernel unsigned int types 2018-06-18 14:45:58 +03:00
dvo_ivch.c drm/i915/dvo: switch to kernel unsigned int types 2018-06-18 14:45:58 +03:00
dvo_ns2501.c drm/i915/dvo: switch to kernel unsigned int types 2018-06-18 14:45:58 +03:00
dvo_sil164.c drm/i915/dvo: switch to kernel unsigned int types 2018-06-18 14:45:58 +03:00
dvo_tfp410.c drm/i915/dvo: switch to kernel unsigned int types 2018-06-18 14:45:58 +03:00
dvo.h
i915_cmd_parser.c drm/i915/cmdparser: Do not check past the cmd length. 2018-02-06 11:41:40 -08:00
i915_debugfs.c drm/i915: Missed interrupt simulation is no more, tell the world 2018-09-07 14:38:48 +01:00
i915_drv.c drm/i915: Move final cleanup of drm_i915_private to i915_driver_destroy 2018-09-05 20:58:35 +01:00
i915_drv.h drm/i915: Replace some PAGE_SIZE with I915_GTT_PAGE_SIZE 2018-09-13 22:26:35 +03:00
i915_gem_batch_pool.c drm/i915: Change parameters order in i915_gem_batch_pool_init 2018-03-09 22:21:41 +00:00
i915_gem_batch_pool.h drm/i915: Change parameters order in i915_gem_batch_pool_init 2018-03-09 22:21:41 +00:00
i915_gem_clflush.c drm: move read_domains and write_domain into i915 2018-02-16 14:12:48 +00:00
i915_gem_clflush.h
i915_gem_context.c drm/i915: Nuke struct_mutex from context_setparam 2018-09-11 20:42:56 +01:00
i915_gem_context.h drm/i915: Nuke struct_mutex from context_setparam 2018-09-11 20:42:56 +01:00
i915_gem_dmabuf.c dma-buf: remove kmap_atomic interface 2018-06-20 15:59:34 +02:00
i915_gem_evict.c drm/i915: Provide a timeout to i915_gem_wait_for_idle() 2018-07-09 13:55:41 +01:00
i915_gem_execbuffer.c drm/i915: Reorder execobject[] to insert non-48b objects into the low 4G 2018-09-12 15:34:49 +01:00
i915_gem_fence_reg.c drm/i915: Use INTEL_GEN everywhere 2018-02-09 22:29:02 +00:00
i915_gem_fence_reg.h
i915_gem_gtt.c drm/i915: Replace some PAGE_SIZE with I915_GTT_PAGE_SIZE 2018-09-13 22:26:35 +03:00
i915_gem_gtt.h drm/i915: Explicitly mark Global GTT address spaces 2018-09-01 10:25:38 +01:00
i915_gem_internal.c drm: move read_domains and write_domain into i915 2018-02-16 14:12:48 +00:00
i915_gem_object.c
i915_gem_object.h drm/i915: Mark up object tiling-and-stride getters as const 2018-07-26 12:31:02 +01:00
i915_gem_render_state.c drm/i915: Start returning an error from i915_vma_move_to_active() 2018-07-06 18:22:37 +01:00
i915_gem_render_state.h drm/i915: Rename drm_i915_gem_request to i915_request 2018-02-21 20:57:22 +00:00
i915_gem_shrinker.c drm/i915: Introduce i915_address_space.mutex 2018-07-11 13:56:16 +01:00
i915_gem_stolen.c drm/i915: use the ICL stolen memory 2018-07-10 16:29:56 -07:00
i915_gem_tiling.c drm/i915: Refactor common list iteration over GGTT vma 2017-12-07 23:26:55 +00:00
i915_gem_userptr.c drm/i915/userptr: Enable read-only support on gen8+ 2018-07-13 16:18:15 +01:00
i915_gem.c drm/i915: Early rejection of buffer allocations larger than RAM 2018-09-03 12:02:04 +01:00
i915_gem.h drm/i915/execlists: Flush tasklet directly from reset-finish 2018-08-29 13:49:08 +01:00
i915_gemfs.c drm/i915: Disable THP until we have a GPU read BW W/A 2017-11-30 10:11:49 +02:00
i915_gemfs.h
i915_gpu_error.c drm/i915: Track vma activity per fence.context, not per engine 2018-07-06 18:22:43 +01:00
i915_gpu_error.h drm/i915: Track vma activity per fence.context, not per engine 2018-07-06 18:22:43 +01:00
i915_ioc32.c drm/i915: Clean up ancient doc comments for i915_ioc32.c 2018-02-15 16:22:21 +00:00
i915_irq.c drm/i915: Do a full device reset after being wedged 2018-09-03 12:02:01 +01:00
i915_memcpy.c drm/i915: Do not enable movntdqa optimization in hypervisor guest 2017-12-22 11:12:15 +00:00
i915_mm.c
i915_oa_bdw.c drm/i915: ensure oa config uuid is null terminated 2017-11-02 14:52:58 +00:00
i915_oa_bdw.h
i915_oa_bxt.c drm/i915: ensure oa config uuid is null terminated 2017-11-02 14:52:58 +00:00
i915_oa_bxt.h
i915_oa_cflgt2.c drm/i915: ensure oa config uuid is null terminated 2017-11-02 14:52:58 +00:00
i915_oa_cflgt2.h
i915_oa_cflgt3.c drm/i915/perf: Fix compiler warning for string truncation 2018-02-12 23:34:50 -08:00
i915_oa_cflgt3.h drm/i915/perf: add support for Coffeelake GT3 2017-11-13 15:59:03 +00:00
i915_oa_chv.c drm/i915: ensure oa config uuid is null terminated 2017-11-02 14:52:58 +00:00
i915_oa_chv.h
i915_oa_cnl.c drm/i915/perf: Fix compiler warning for string truncation 2018-02-12 23:34:55 -08:00
i915_oa_cnl.h drm/i915/perf: enable perf support on CNL 2017-11-13 15:59:24 +00:00
i915_oa_glk.c drm/i915: ensure oa config uuid is null terminated 2017-11-02 14:52:58 +00:00
i915_oa_glk.h
i915_oa_hsw.c drm/i915: ensure oa config uuid is null terminated 2017-11-02 14:52:58 +00:00
i915_oa_hsw.h
i915_oa_icl.c drm/i915/perf: enable perf support on ICL 2018-03-29 13:25:30 +01:00
i915_oa_icl.h drm/i915/perf: enable perf support on ICL 2018-03-29 13:25:30 +01:00
i915_oa_kblgt2.c drm/i915: ensure oa config uuid is null terminated 2017-11-02 14:52:58 +00:00
i915_oa_kblgt2.h
i915_oa_kblgt3.c drm/i915: ensure oa config uuid is null terminated 2017-11-02 14:52:58 +00:00
i915_oa_kblgt3.h
i915_oa_sklgt2.c drm/i915: ensure oa config uuid is null terminated 2017-11-02 14:52:58 +00:00
i915_oa_sklgt2.h
i915_oa_sklgt3.c drm/i915: ensure oa config uuid is null terminated 2017-11-02 14:52:58 +00:00
i915_oa_sklgt3.h
i915_oa_sklgt4.c drm/i915: ensure oa config uuid is null terminated 2017-11-02 14:52:58 +00:00
i915_oa_sklgt4.h
i915_params.c drm/i915: Remove intel_panel_detect() 2018-07-19 18:39:31 +03:00
i915_params.h drm/i915: Remove intel_panel_detect() 2018-07-19 18:39:31 +03:00
i915_pci.c drm/i915: Do not redefine the has_csr parameter. 2018-08-17 13:54:33 -07:00
i915_perf.c i915/oa: Simplify updating contexts 2018-09-13 09:41:12 +01:00
i915_pmu.c drm/i915/pmu: Do not assume fixed hrtimer period 2018-06-05 16:45:01 +01:00
i915_pmu.h drm/i915/pmu: Do not assume fixed hrtimer period 2018-06-05 16:45:01 +01:00
i915_pvinfo.h - Ice Lake's display enabling patches (Jose, Mahesh, Dhinakaran, Paulo, Manasi, Anusha, Arkadiusz) 2018-06-07 10:24:50 +08:00
i915_query.c drm/i915/query: nospec expects no more than an unsigned long 2018-05-29 13:53:07 +03:00
i915_query.h drm/i915: add query uAPI 2018-03-08 10:07:18 +00:00
i915_reg.h drm/i915/icl: Define T_INIT_MASTER registers 2018-09-11 21:57:07 +03:00
i915_request.c drm/i915: Pull seqno started checks together 2018-08-07 12:43:00 +01:00
i915_request.h drm/i915: Pull seqno started checks together 2018-08-07 12:43:00 +01:00
i915_scheduler.h drm/i915: Pack params to engine->schedule() into a struct 2018-04-18 21:09:11 +01:00
i915_selftest.h drm/i915/selftests: Downgrade igt_timeout message 2018-07-16 11:23:45 +01:00
i915_suspend.c
i915_sw_fence.c drm/i915/fence: Separate timeout mechanism for awaiting on dma-fences 2018-01-15 10:29:18 +00:00
i915_sw_fence.h
i915_syncmap.c drm/i915: Fix kerneldoc parameter markup 2018-02-08 15:08:51 +00:00
i915_syncmap.h
i915_sysfs.c drm/i915: Kick the rps worker when changing the boost frequency 2018-03-12 11:24:49 -07:00
i915_timeline.c drm/i915: Split i915_gem_timeline into individual timelines 2018-05-02 23:57:18 +01:00
i915_timeline.h drm/i915: Replace nested subclassing with explicit subclasses 2018-07-07 08:09:43 +01:00
i915_trace_points.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
i915_trace.h drm/i915/ringbuffer: Fix context restore upon reset 2018-06-11 14:03:47 +01:00
i915_utils.h drm/i915: Retire requests along rings 2018-04-30 16:01:18 +01:00
i915_vgpu.c drm/i915/gtt: Rename i915_hw_ppgtt base member 2018-06-05 21:11:20 +01:00
i915_vgpu.h drm/i915: Add new vGPU cap info bit VGT_CAPS_HUGE_GTT 2018-06-05 16:57:01 +03:00
i915_vma.c drm/i915: Stop holding a ref to the ppgtt from each vma 2018-08-16 13:31:37 +01:00
i915_vma.h drm/i915: Fix gtt_view asserts 2018-08-28 18:49:33 +03:00
icl_dsi.c drm/i915/icl: Power down unused DSI lanes 2018-07-06 12:14:16 +03:00
intel_acpi.c drm/i915/dsm: remove unnecessary dsm priv structure 2018-06-14 15:59:09 +03:00
intel_atomic_plane.c drm/i915: Move chv rotation checks to plane->check() 2018-09-12 18:03:57 +03:00
intel_atomic.c Chris is doing many reworks that allow us to get full-ppgtt supported 2018-06-28 13:10:44 +10:00
intel_audio.c drm/i915/audio: Hook up component bindings even if displays are disabled 2018-08-20 14:30:43 +01:00
intel_bios.c drm/i915/psr: fix copy-paste error with setting of tp2_wakeup_time_us 2018-06-20 12:00:31 -07:00
intel_bios.h
intel_breadcrumbs.c drm/i915: Pull seqno started checks together 2018-08-07 12:43:00 +01:00
intel_cdclk.c drm/i915: Mark expected switch fall-throughs 2018-07-05 16:40:51 +03:00
intel_color.c Merge airlied/drm-next into drm-misc-next 2018-03-21 09:40:55 -04:00
intel_crt.c drm/i915: Enforce max hdisplay/hblank_start limits on HSW/BDW FDI 2018-06-19 17:18:24 +03:00
intel_csr.c drm/i915/intel_csr.c Fix DMC FW Loading issue on ICL. 2018-08-31 16:46:46 +03:00
intel_ddi.c drm/i915: Fix ICL+ HDMI clock readout 2018-09-04 16:15:49 +03:00
intel_device_info.c drm/i915: Record logical context support in driver caps 2018-07-06 14:05:23 +01:00
intel_device_info.h drm/i915: kill resource streamer support 2018-08-06 17:19:51 +01:00
intel_display.c drm/i915: Fix a potential integer overflow with framebuffers extending past 4 GiB 2018-09-13 22:42:51 +03:00
intel_display.h drm/i915: Add a small wrapper to check for CCS modifiers. 2018-08-22 15:39:42 -07:00
intel_dp_aux_backlight.c drm/i915/backlight: switch to kernel unsigned int types 2018-06-18 14:46:04 +03:00
intel_dp_link_training.c drm/i915/dp: Improve clock recovery loop limit comment 2018-07-25 09:57:25 -07:00
intel_dp_mst.c drm/i915/dp_mst: Fix enabling pipe clock for all streams 2018-09-01 09:13:01 +03:00
intel_dp.c drm/i915: introduce dp_to_i915() helper 2018-08-28 06:58:16 -07:00
intel_dpio_phy.c drm/i915/gen9_lp: Increase DDI PHY0 power well enabling timeout 2018-04-10 13:12:22 +03:00
intel_dpll_mgr.c drm/i915: Fix ICL+ HDMI clock readout 2018-09-04 16:15:49 +03:00
intel_dpll_mgr.h drm/i915: Fix ICL+ HDMI clock readout 2018-09-04 16:15:49 +03:00
intel_drv.h drm/i915: Move chv rotation checks to plane->check() 2018-09-12 18:03:57 +03:00
intel_dsi_dcs_backlight.c
intel_dsi_vbt.c drm/i915/dsi: use vlv and bxt prefixes for the global DSI functions 2018-07-06 10:54:05 +03:00
intel_dsi.h drm/i915/dsi: use vlv and bxt prefixes for the global DSI functions 2018-07-06 10:54:05 +03:00
intel_dvo.c drm/i915: Allow DBLSCAN user modes with eDP/LVDS/DSI 2018-06-19 15:47:49 +03:00
intel_engine_cs.c drm/i915: Use a cached mapping for the physical HWS 2018-09-03 17:55:59 +01:00
intel_fbc.c drm/i915: Rename the plane_state->main/aux to plane_state->color_plane[] 2018-09-12 17:50:31 +03:00
intel_fbdev.c drm/i915: Store ggtt_view in plane_state 2018-09-12 17:54:21 +03:00
intel_fifo_underrun.c
intel_frontbuffer.c drm/i915/psr: Nuke PSR support for VLV and CHV 2018-05-24 16:05:19 +03:00
intel_frontbuffer.h
intel_gpu_commands.h drm/i915: Split GPU commands definitions into separate header 2018-03-15 10:00:03 +00:00
intel_guc_ads.c drm/i915: Pull unpin map into vma release 2018-07-24 09:55:12 +01:00
intel_guc_ads.h drm/i915/guc : Decoupling ADS and logs from submission 2018-01-03 14:02:10 +00:00
intel_guc_ct.c drm/i915: Pull unpin map into vma release 2018-07-24 09:55:12 +01:00
intel_guc_ct.h drm/i915/guc: Prepare to process incoming requests from CT 2018-03-28 20:35:17 +01:00
intel_guc_fw.c drm/i915/uc: Fetch uC firmware in init_early 2018-03-23 17:03:24 +00:00
intel_guc_fw.h drm/i915/guc: Move firmware selection to init_early 2017-12-06 14:41:47 +00:00
intel_guc_fwif.h drm/i915/selftests: ring all doorbells in igt_guc_doorbells 2018-08-28 13:41:27 +01:00
intel_guc_log.c drm/i915: Pull unpin map into vma release 2018-07-24 09:55:12 +01:00
intel_guc_log.h drm/i915/guc: Add support for define guc_log_size in megabytes. 2018-06-12 15:44:47 +01:00
intel_guc_reg.h drm/i915/guc: Check the locking status of GuC WOPCM registers 2018-03-14 15:35:37 +02:00
intel_guc_submission.c drm/i915/selftests: ring all doorbells in igt_guc_doorbells 2018-08-28 13:41:27 +01:00
intel_guc_submission.h drm/i915/selftests: ring all doorbells in igt_guc_doorbells 2018-08-28 13:41:27 +01:00
intel_guc.c drm/i915/guc: Move the pin bias value from GuC to GGTT 2018-07-27 16:03:41 +01:00
intel_guc.h drm/i915/guc: Move the pin bias value from GuC to GGTT 2018-07-27 16:03:41 +01:00
intel_gvt.c drm/i915: Unwind HW init after GVT setup failure 2018-07-10 16:46:09 +01:00
intel_gvt.h
intel_hangcheck.c drm/i915: Pull seqno started checks together 2018-08-07 12:43:00 +01:00
intel_hdcp.c drm/i915: Constify power well descriptors 2018-08-08 13:49:43 +03:00
intel_hdmi.c drm/i915/icl: implement the tc/legacy HPD {dis,}connect flows 2018-08-24 12:26:42 -07:00
intel_hotplug.c drm/i915: Pass hpd_pin to long_pulse_detect() 2018-07-13 18:22:22 +03:00
intel_huc_fw.c drm/i915/uc: Fetch uC firmware in init_early 2018-03-23 17:03:24 +00:00
intel_huc_fw.h drm/i915/uc: Make GuC/HuC fw fetch and loading functions/file structure symmetric 2018-03-02 09:04:45 +00:00
intel_huc.c drm/i915/guc: Move the pin bias value from GuC to GGTT 2018-07-27 16:03:41 +01:00
intel_huc.h drm/i915/uc: Fetch GuC/HuC firmwares from guc/huc specific init 2018-06-28 22:51:33 +01:00
intel_i2c.c drm/i915: remove confusing GPIO vs PCH_GPIO 2018-08-16 11:52:08 -07:00
intel_lpe_audio.c drm/i915/lpe: Mark LPE audio runtime pm as "no callbacks" 2018-08-03 10:35:13 +01:00
intel_lrc_reg.h drm/i915/execlists: Terminate the context image with BB_END 2018-08-01 17:03:31 +01:00
intel_lrc.c drm/i915: Reduce context HW ID lifetime 2018-09-05 11:58:08 +01:00
intel_lrc.h drm/i915: Remove superfluous GEN8_LR_CONTEXT_ALIGN 2018-07-27 11:30:42 +01:00
intel_lspcon.c drm/i915: Increase LSPCON timeout 2018-08-20 14:19:43 +03:00
intel_lvds.c On GEM side: 2018-07-20 12:29:24 +10:00
intel_mocs.c drm/i915: Remove useless error return from intel_init_mocs_engine() 2018-08-15 23:25:43 +01:00
intel_mocs.h drm/i915: Remove useless error return from intel_init_mocs_engine() 2018-08-15 23:25:43 +01:00
intel_modes.c drm: drop _mode_ from update_edit_property() 2018-07-13 18:40:27 +02:00
intel_opregion.c drm/i915/opregion: move acpi notifier to dev_priv 2018-06-14 13:48:10 +03:00
intel_opregion.h drm/i915/opregion: move acpi notifier to dev_priv 2018-06-14 13:48:10 +03:00
intel_overlay.c drm/i915/overlay: Use the ioctl parameters directly 2018-09-11 15:51:27 +01:00
intel_panel.c drm/i915: Remove intel_panel_detect() 2018-07-19 18:39:31 +03:00
intel_pipe_crc.c drm/i915: Remove support for legacy debugfs crc interface 2018-07-06 14:33:35 +02:00
intel_pm.c drm/i915: Disable runtime-pm using lowlevel functions if !HAS_RC6 2018-08-14 15:19:50 +01:00
intel_psr.c drm/i915: Be defensive and don't assume PSR has any commit to sync against 2018-09-04 21:21:50 +01:00
intel_renderstate_gen6.c
intel_renderstate_gen7.c
intel_renderstate_gen8.c
intel_renderstate_gen9.c
intel_renderstate.h
intel_ringbuffer.c drm/i915/ringbuffer: Reload PDs harder on byt/bcs 2018-09-12 11:02:08 +01:00
intel_ringbuffer.h drm/i915: Clear stop-engine for a pardoned reset 2018-08-15 10:15:28 +01:00
intel_runtime_pm.c drm/i915: Don't check power domains state in intel_power_domains_init_hw() 2018-08-29 13:21:52 +03:00
intel_sdvo_regs.h
intel_sdvo.c drm-misc-next for 4.19: 2018-07-20 10:46:49 +10:00
intel_sideband.c
intel_sprite.c drm/i915: Move chv rotation checks to plane->check() 2018-09-12 18:03:57 +03:00
intel_tv.c drm/i915/tv: fix strncpy truncation warning 2018-07-12 10:18:19 +01:00
intel_uc_fw.c drm/i915/guc: Move the pin bias value from GuC to GGTT 2018-07-27 16:03:41 +01:00
intel_uc_fw.h drm/i915/firmware: Correct URL for firmware 2018-05-02 13:40:17 -07:00
intel_uc.c drm/i915/guc: Update GuC power domain states 2018-09-10 20:31:55 +01:00
intel_uc.h drm/i915/uc: Fetch uC firmware in init_early 2018-03-23 17:03:24 +00:00
intel_uncore.c drm/i915: Pull intel_uncore_arm_unclaimed_mmio_detection() under the spinlock 2018-09-04 16:01:14 +01:00
intel_uncore.h drm/i915: Restore user forcewake domains across suspend 2018-08-09 14:25:46 +01:00
intel_vbt_defs.h drm/i915/vbt: switch to kernel unsigned int types 2018-06-18 14:44:52 +03:00
intel_wopcm.c drm/i915: Add a fault injection point to WOPCM init 2018-07-27 16:07:45 +01:00
intel_wopcm.h drm/i915/guc: Check the locking status of GuC WOPCM registers 2018-03-14 15:35:37 +02:00
intel_workarounds.c Revert "drm/i915/icl: WaEnableFloatBlendOptimization" 2018-08-01 17:17:27 +03:00
intel_workarounds.h drm/i915: Check whitelist registers across resets 2018-04-14 18:36:45 +01:00
Kconfig
Kconfig.debug drm/i915: Verify power domains after enabling them 2018-08-20 12:13:09 +03:00
Makefile drm/i915/icl: Program DSI Escape clock Divider 2018-07-06 12:13:34 +03:00
vlv_dsi_pll.c drm/i915/dsi: use vlv and bxt prefixes for the global DSI functions 2018-07-06 10:54:05 +03:00
vlv_dsi.c drm/i915/dsi: update some of the platform based checks 2018-07-06 10:54:10 +03:00