linux/drivers/gpu/drm/radeon
Michel Dänzer ce4b4f228e drm/radeon: Override fpfn for all VRAM placements in radeon_evict_flags
We were accidentally only overriding the first VRAM placement. For BOs
with the RADEON_GEM_NO_CPU_ACCESS flag set,
radeon_ttm_placement_from_domain creates a second VRAM placment with
fpfn == 0. If VRAM is almost full, the first VRAM placement with
fpfn > 0 may not work, but the second one with fpfn == 0 always will
(the BO's current location trivially satisfies it). Because "moving"
the BO to its current location puts it back on the LRU list, this
results in an infinite loop.

Fixes: 2a85aedd11 ("drm/radeon: Try evicting from CPU accessible to
                      inaccessible VRAM first")
Reported-by: Zachary Michaels <zmichaels@oblong.com>
Reported-and-Tested-by: Julien Isorce <jisorce@oblong.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
2017-03-27 16:17:30 -04:00
..
reg_srcs
.gitignore
atom-bits.h
atom-names.h
atom-types.h
atom.c drm/radeon: fix indentation. 2016-03-16 18:08:06 -04:00
atom.h
atombios.h scripts/spelling.txt: add "aligment" pattern and fix typo instances 2017-02-27 18:43:46 -08:00
atombios_crtc.c drm: Nuke fb->pixel_format 2016-12-15 14:55:34 +02:00
atombios_dp.c drm/radeon: Don't retry 7 times in radeon_dp_dpcd() 2016-08-08 13:28:26 -04:00
atombios_encoders.c drm/radeon: add missing header dependencies 2016-10-25 14:38:18 -04:00
atombios_i2c.c
avivod.h
btc_dpm.c drm/radeon: fix indentation. 2016-03-16 18:08:06 -04:00
btc_dpm.h
btcd.h
cayman_blit_shaders.c drm: fix trivial typos 2015-10-21 11:35:11 -04:00
cayman_blit_shaders.h
ci_dpm.c drm/radeon/ci add comment to document intentionally unreachable code 2016-07-29 14:36:45 -04:00
ci_dpm.h
ci_smc.c drm/radeon: fix indentation. 2016-03-16 18:08:06 -04:00
cik.c drm/radeon: squash lines for simple wrapper functions 2016-09-15 10:39:37 -04:00
cik_blit_shaders.c
cik_blit_shaders.h
cik_reg.h
cik_sdma.c drm/radeon: Avoid double gpu reset by adding a timeout on IB ring tests. 2016-02-10 14:17:15 -05:00
cikd.h drm/radeon: switch UVD code to use UVD_NO_OP for padding 2016-08-24 16:25:05 -04:00
clearstate_cayman.h
clearstate_ci.h
clearstate_defs.h
clearstate_evergreen.h
clearstate_si.h
cypress_dpm.c drm/radeon: fix indentation. 2016-03-16 18:08:06 -04:00
cypress_dpm.h
dce3_1_afmt.c
dce6_afmt.c drm/radeon: Add a common function for DFS handling 2016-01-27 12:48:32 -05:00
evergreen.c drm/radeon: switch UVD code to use UVD_NO_OP for padding 2016-08-24 16:25:05 -04:00
evergreen_blit_shaders.c drm: fix trivial typos 2015-10-21 11:35:11 -04:00
evergreen_blit_shaders.h
evergreen_cs.c drm/radeon: add missing header dependencies 2016-10-25 14:38:18 -04:00
evergreen_dma.c
evergreen_hdmi.c drm/radeon: fix indentation. 2016-03-16 18:08:06 -04:00
evergreen_reg.h drm/radeon: fix vertical bars appear on monitor (v2) 2016-04-27 12:27:08 -04:00
evergreen_smc.h
evergreend.h drm/radeon: switch UVD code to use UVD_NO_OP for padding 2016-08-24 16:25:05 -04:00
Kconfig drm/radeon: remove UMS support 2015-12-02 12:45:54 -05:00
kv_dpm.c drm/radeon: fix array out of bounds 2016-05-16 10:25:13 -04:00
kv_dpm.h
kv_smc.c
Makefile drm/radeon: remove UMS support 2015-12-02 12:45:54 -05:00
mkregtable.c
ni.c drm/radeon: drop register readback in cayman_cp_int_cntl_setup 2016-10-25 13:57:22 -04:00
ni_dma.c
ni_dpm.c drm/radeon: fix indentation. 2016-03-16 18:08:06 -04:00
ni_dpm.h
ni_reg.h drm/radeon/mst: port some MST setup code from DAL. 2016-04-06 14:57:46 -04:00
nid.h drm/radeon: switch UVD code to use UVD_NO_OP for padding 2016-08-24 16:25:05 -04:00
nislands_smc.h
ObjectID.h
ppsmc.h
pptable.h
r100.c drm: Nuke fb->bits_per_pixel 2016-12-15 14:55:34 +02:00
r100_track.h
r100d.h
r200.c
r300.c drm/radeon: allow to force hard GPU reset. 2016-05-02 13:08:54 -04:00
r300_reg.h
r300d.h
r420.c
r420d.h
r500_reg.h
r520.c
r520d.h
r600.c drm/radeon: squash lines for simple wrapper functions 2016-09-15 10:39:37 -04:00
r600_blit_shaders.c drm: fix trivial typos 2015-10-21 11:35:11 -04:00
r600_blit_shaders.h
r600_cs.c drm/radeon: add missing header dependencies 2016-10-25 14:38:18 -04:00
r600_dma.c drm/radeon: Avoid double gpu reset by adding a timeout on IB ring tests. 2016-02-10 14:17:15 -05:00
r600_dpm.c drm/radeon: change vblank_time's calculation method to reduce computational error. 2016-10-13 18:25:49 -04:00
r600_dpm.h
r600_hdmi.c drm/radeon: fix indentation. 2016-03-16 18:08:06 -04:00
r600_reg.h
r600d.h drm/radeon: add support for UVD_NO_OP register 2016-08-24 16:25:04 -04:00
radeon.h dma-buf: Rename struct fence to dma_fence 2016-10-25 14:40:39 +02:00
radeon_acpi.c drm/radeon/atif: Send a hotplug event when we get dgpu display request 2016-09-22 10:30:58 -04:00
radeon_acpi.h drm/radeon: update radeon acpi header 2016-02-26 14:16:58 -05:00
radeon_agp.c add blacklist for thinkpad T40p 2015-11-30 14:44:34 -05:00
radeon_asic.c drm/radeon: add driver option to disable vce block. 2016-05-02 13:08:53 -04:00
radeon_asic.h drm/radeon: Support DRM_MODE_PAGE_FLIP_ASYNC 2016-05-04 20:19:03 -04:00
radeon_atombios.c drm/radeon: add missing header dependencies 2016-10-25 14:38:18 -04:00
radeon_atpx_handler.c drm/radeon: fix check for port PM availability 2016-11-29 09:24:13 -05:00
radeon_audio.c drm/radeon: Add a common function for DFS handling 2016-01-27 12:48:32 -05:00
radeon_audio.h drm/radeon: Add a common function for DFS handling 2016-01-27 12:48:32 -05:00
radeon_benchmark.c
radeon_bios.c drm/radeon: remove some dead code 2017-02-08 21:04:29 -05:00
radeon_clocks.c drm/radeon: add missing header dependencies 2016-10-25 14:38:18 -04:00
radeon_combios.c PCI: Remove includes of asm/pci-bridge.h 2016-02-05 16:29:28 -06:00
radeon_connectors.c drm/radeon: Fix kernel panic on shutdown 2016-10-31 12:19:39 -04:00
radeon_cs.c drm: remove device_is_agp callback 2017-01-26 10:45:14 +01:00
radeon_cursor.c drm/radeon: Use mode h/vdisplay fields to hide out of bounds HW cursor 2017-02-16 11:03:03 -05:00
radeon_device.c drm/radeon: Remove drm_debugfs_remove_files() call 2017-01-27 15:26:32 +01:00
radeon_display.c drm: Nuke fb->bits_per_pixel 2016-12-15 14:55:34 +02:00
radeon_dp_auxch.c Revert "drm/radeon: fix DP link training issue with second 4K monitor" 2016-10-24 17:00:26 -04:00
radeon_dp_mst.c drm/dp: Store drm_device in MST topology manager 2017-01-25 06:01:48 +01:00
radeon_drv.c Linux 4.10-rc8 2017-02-23 12:10:12 +10:00
radeon_drv.h drm/radeon: remove UMS support 2015-12-02 12:45:54 -05:00
radeon_encoders.c drm/radeon: move bl encoder assignment into bl init 2015-10-29 11:13:18 -04:00
radeon_family.h
radeon_fb.c drm: Rely on mode_config data for fb_helper initialization 2017-02-02 19:12:00 +01:00
radeon_fence.c dma-buf: Rename struct fence to dma_fence 2016-10-25 14:40:39 +02:00
radeon_gart.c
radeon_gem.c drm/radeon: Fix vram_size/visible values in DRM_RADEON_GEM_INFO ioctl 2017-02-02 11:14:09 -05:00
radeon_i2c.c drm/radeon: fix up dp aux tear down (v2) 2016-10-12 15:44:13 -04:00
radeon_ib.c drm/radeon: fix indentation. 2016-03-16 18:08:06 -04:00
radeon_ioc32.c
radeon_irq_kms.c drm/radeon|amdgpu: Remove redundant num_connectors check 2016-12-18 14:18:12 +01:00
radeon_kfd.c drm/radeon: Return -EPROBE_DEFER when amdkfd not loaded 2016-02-27 22:52:40 +02:00
radeon_kfd.h drm/radeon: Return -EPROBE_DEFER when amdkfd not loaded 2016-02-27 22:52:40 +02:00
radeon_kms.c drm: remove device_is_agp callback 2017-01-26 10:45:14 +01:00
radeon_legacy_crtc.c drm: Nuke fb->bits_per_pixel 2016-12-15 14:55:34 +02:00
radeon_legacy_encoders.c drm/radeon: add missing header dependencies 2016-10-25 14:38:18 -04:00
radeon_legacy_tv.c
radeon_mn.c drm/radeon: make radeon_mn_get wait for mmap_sem killable 2016-05-23 17:04:14 -07:00
radeon_mode.h drm: Don't include <drm/drm_encoder.h> in <drm/drm_crtc.h> 2016-12-18 16:29:29 +05:30
radeon_object.c drm/ttm: add evict parameter to ttm_bo_driver::move_notify 2017-01-27 11:13:15 -05:00
radeon_object.h drm/ttm: add evict parameter to ttm_bo_driver::move_notify 2017-01-27 11:13:15 -05:00
radeon_pm.c drm/radeon/pm: autoswitch power state when in balanced mode 2016-10-25 14:44:03 -04:00
radeon_prime.c
radeon_reg.h
radeon_ring.c
radeon_sa.c drm/radeon: hold reference to fences in radeon_sa_bo_new 2016-02-10 14:07:44 -05:00
radeon_semaphore.c drm/radeon: fix indentation. 2016-03-16 18:08:06 -04:00
radeon_sync.c dma-buf: Rename struct fence to dma_fence 2016-10-25 14:40:39 +02:00
radeon_test.c
radeon_trace.h
radeon_trace_points.c
radeon_ttm.c drm/radeon: Override fpfn for all VRAM placements in radeon_evict_flags 2017-03-27 16:17:30 -04:00
radeon_ucode.c
radeon_ucode.h
radeon_uvd.c dma-buf: Rename struct fence to dma_fence 2016-10-25 14:40:39 +02:00
radeon_vce.c drm/radeon: fix indentation. 2016-03-16 18:08:06 -04:00
radeon_vm.c drm/radeon: fix indentation. 2016-03-16 18:08:06 -04:00
rs100d.h
rs400.c
rs400d.h
rs600.c drm/radeon: Support DRM_MODE_PAGE_FLIP_ASYNC 2016-05-04 20:19:03 -04:00
rs600d.h
rs690.c drm/radeon: Fixup hw vblank counter/ts for new drm_update_vblank_count() (v2) 2015-12-18 17:29:47 -05:00
rs690d.h
rs780_dpm.c drm/radeon: fix indentation. 2016-03-16 18:08:06 -04:00
rs780_dpm.h
rs780d.h
rv6xx_dpm.c drm/radeon: fix indentation. 2016-03-16 18:08:06 -04:00
rv6xx_dpm.h
rv6xxd.h
rv200d.h
rv250d.h
rv350d.h
rv515.c drm/radeon: Prevent races on pre DCE4 between flip submission and completion. 2016-10-04 11:15:58 -04:00
rv515d.h
rv730_dpm.c drm/radeon: make some dpm errors debug only 2015-11-25 11:28:42 -05:00
rv730d.h
rv740_dpm.c drm/radeon: fix indentation. 2016-03-16 18:08:06 -04:00
rv740d.h
rv770.c drm/radeon: switch UVD code to use UVD_NO_OP for padding 2016-08-24 16:25:05 -04:00
rv770_dma.c
rv770_dpm.c drm/radeon: fix indentation. 2016-03-16 18:08:06 -04:00
rv770_dpm.h
rv770_smc.c
rv770_smc.h
rv770d.h drm/radeon: switch UVD code to use UVD_NO_OP for padding 2016-08-24 16:25:05 -04:00
si.c drm/radeon: add support for new hainan variants 2017-01-17 15:25:35 -05:00
si_blit_shaders.c
si_blit_shaders.h
si_dma.c
si_dpm.c drm/radeon: reinstate oland workaround for sclk 2017-03-16 10:06:11 -04:00
si_dpm.h
si_reg.h
si_smc.c
sid.h drm/radeon: allow TA_CS_BC_BASE_ADDR on SI 2016-10-12 15:44:15 -04:00
sislands_smc.h drm/radeon/si/dpm: fix phase shedding setup 2016-09-28 16:13:16 -04:00
smu7.h
smu7_discrete.h
smu7_fusion.h
sumo_dpm.c drm/radeon: fix indentation. 2016-03-16 18:08:06 -04:00
sumo_dpm.h
sumo_smc.c
sumod.h
trinity_dpm.c drm/radeon: fix indentation. 2016-03-16 18:08:06 -04:00
trinity_dpm.h
trinity_smc.c
trinityd.h
uvd_v1_0.c drm/radeon: handle more than 10 UVD sessions 2016-05-04 20:19:43 -04:00
uvd_v2_2.c drm/radeon: handle more than 10 UVD sessions 2016-05-04 20:19:43 -04:00
uvd_v3_1.c
uvd_v4_2.c drm/radeon: handle more than 10 UVD sessions 2016-05-04 20:19:43 -04:00
vce_v1_0.c drm/radeon: avoid kernel segfault in vce when gpu fails to resume 2017-02-08 20:59:16 -05:00
vce_v2_0.c drm/radeon: fix indentation. 2016-03-16 18:08:06 -04:00