linux/drivers/gpu/drm/radeon
Michel Dänzer 7a1619b97e drm/radeon: Make sure CS mutex is held across GPU reset.
This was only the case if the GPU reset was triggered from the CS ioctl,
otherwise other processes could happily enter the CS ioctl and wreak havoc
during the GPU reset.

This is a little complicated because the GPU reset can be triggered from the
CS ioctl, in which case we're already holding the mutex, or from other call
paths, in which case we need to lock the mutex. AFAICT the mutex API doesn't
allow recursive locking or finding out the mutex owner, so we need to handle
this with helper functions which allow recursive locking from the same
process.

Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Jerome Glisse <jglisse@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
2011-11-11 11:02:10 +00:00
..
reg_srcs drm/radeon/kms: add initial CS checker support for compute 2011-06-21 12:36:39 +10:00
.gitignore
atom-bits.h
atom-names.h
atom-types.h
atom.c drm/radeon/kms/atom: fix handling of FB scratch indices 2011-10-19 09:47:47 +01:00
atom.h drm/radeon/kms/atom: fix handling of FB scratch indices 2011-10-19 09:47:47 +01:00
atombios_crtc.c drm/radeon/kms: check for DP MST mode in a few more places (v2) 2011-11-01 16:04:57 +00:00
atombios_dp.c drm/radeon/kms: fix DP setup on TRAVIS bridges 2011-11-03 17:53:22 +00:00
atombios_encoders.c drm/radeon/kms: make atombios_dig_transmitter_setup() version based 2011-11-01 16:05:22 +00:00
atombios.h drm/radeon/kms: add missing external encoder action 2011-06-17 09:28:01 +10:00
avivod.h
cayman_blit_shaders.c drm/radeon/kms: add blit support for cayman (v2) 2011-05-26 09:19:31 +10:00
cayman_blit_shaders.h drm/radeon/kms: add blit support for cayman (v2) 2011-05-26 09:19:31 +10:00
evergreen_blit_kms.c drm/radeon: flush read cache for gtt with fence on r6xx and newer GPU V3 2011-11-01 16:02:07 +00:00
evergreen_blit_shaders.c
evergreen_blit_shaders.h
evergreen_cs.c drm/radeon: Remove now unused functions in radeon driver 2011-10-18 09:44:45 +01:00
evergreen_reg.h
evergreen.c drm/radeon/kms: consolidate GART code, fix segfault after GPU lockup V2 2011-11-04 10:39:51 +00:00
evergreend.h drm/radeon/kms: demystify evergreen blit code 2011-10-18 10:06:23 +01:00
Kconfig drm/radeon/kms: clean up the radeon kms Kconfig 2011-05-26 09:22:05 +10:00
Makefile drm/radeon/kms: move atom encoder setup to a new file 2011-11-01 16:05:07 +00:00
mkregtable.c
ni_reg.h
ni.c Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux 2011-11-07 10:01:56 -08:00
nid.h drm/radeon/kms: fix typo in cayman reg offset 2011-07-02 07:09:19 +10:00
ObjectID.h
r100_track.h drm/radeon: Remove more bogus inlines in the radeon driver. 2011-10-18 09:44:52 +01:00
r100.c Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux 2011-11-07 10:01:56 -08:00
r100d.h
r200.c drm/radeon/kms: Make GPU/CPU page size handling consistent in blit code (v2) 2011-09-18 19:44:36 +01:00
r300_cmdbuf.c drm/radeon: Move more code out of line 2011-10-18 09:53:05 +01:00
r300_reg.h Fix common misspellings 2011-03-31 11:26:23 -03:00
r300.c drm/radeon/kms: consolidate GART code, fix segfault after GPU lockup V2 2011-11-04 10:39:51 +00:00
r300d.h
r420.c
r420d.h
r500_reg.h
r520.c
r520d.h
r600_audio.c
r600_blit_kms.c drm/radeon: flush read cache for gtt with fence on r6xx and newer GPU V3 2011-11-01 16:02:07 +00:00
r600_blit_shaders.c
r600_blit_shaders.h
r600_blit.c drm/radeon: drop inlines in r600_blit.c 2011-10-18 09:44:38 +01:00
r600_cp.c gpu: add module.h to drivers/gpu files as required. 2011-10-31 19:32:03 -04:00
r600_cs.c drm/radeon: Remove now unused functions in radeon driver 2011-10-18 09:44:45 +01:00
r600_hdmi.c Fix common misspellings 2011-03-31 11:26:23 -03:00
r600_reg.h
r600.c Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux 2011-11-07 10:01:56 -08:00
r600d.h drm/radeon/kms: demystify r600 blit code 2011-10-18 10:06:23 +01:00
radeon_acpi.c
radeon_agp.c
radeon_asic.c drm/radeon/kms: blit code commoning 2011-10-18 10:10:52 +01:00
radeon_asic.h Merge tag 'v3.1-rc10' into drm-core-next 2011-10-18 10:54:30 +01:00
radeon_atombios.c drm/radeon: Move more code out of line 2011-10-18 09:53:05 +01:00
radeon_atpx_handler.c drm/radeon/kms: ATPX switcheroo fixes 2011-05-09 09:14:35 +10:00
radeon_benchmark.c drm/radeon/kms: add more elaborate benchmarks 2011-10-18 10:06:23 +01:00
radeon_bios.c drm/radeon/kms: fix typo in read_disabled vbios code 2011-07-12 06:58:59 +01:00
radeon_clocks.c drm/radeon/kms: set a default max_pixel_clock 2011-08-31 14:06:19 +01:00
radeon_combios.c drm/radeon/kms: Fix I2C mask definitions 2011-10-10 09:03:10 +01:00
radeon_connectors.c drm/radeon/kms: set HPD polarity in hpd_init() 2011-11-03 17:53:18 +00:00
radeon_cp.c gpu: add module.h to drivers/gpu files as required. 2011-10-31 19:32:03 -04:00
radeon_cs.c drm/radeon: Make sure CS mutex is held across GPU reset. 2011-11-11 11:02:10 +00:00
radeon_cursor.c drm/radeon: Set cursor x/y to 0 when x/yorigin > 0. 2011-10-03 18:37:37 +01:00
radeon_device.c drm/radeon: Make sure CS mutex is held across GPU reset. 2011-11-11 11:02:10 +00:00
radeon_display.c drm/radeon/kms: remove useless radeon_ddc_dump() 2011-11-01 16:05:27 +00:00
radeon_drv.c Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux 2011-11-07 10:01:56 -08:00
radeon_drv.h Fix common misspellings 2011-03-31 11:26:23 -03:00
radeon_encoders.c drm/radeon/kms: move atom encoder setup to a new file 2011-11-01 16:05:07 +00:00
radeon_family.h drm/radeon/kms: add family ids for llano APUs 2011-06-02 10:47:37 +10:00
radeon_fb.c Merge remote branch 'intel/drm-intel-next' of ../drm-next into drm-core-next 2011-03-14 14:15:13 +10:00
radeon_fence.c Merge branch 'drm-core-next' of git://people.freedesktop.org/~airlied/linux 2011-10-28 05:54:23 -07:00
radeon_gart.c drm/radeon/kms: consolidate GART code, fix segfault after GPU lockup V2 2011-11-04 10:39:51 +00:00
radeon_gem.c Revert "drm/radeon/kms: add a new gem_wait ioctl with read/write flags" 2011-10-27 18:15:10 +02:00
radeon_i2c.c Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux 2011-11-07 10:01:56 -08:00
radeon_ioc32.c
radeon_irq_kms.c drm/radeon/kms: add MSI module parameter 2011-11-03 17:53:14 +00:00
radeon_irq.c drm/radeon: Move more code out of line 2011-10-18 09:53:05 +01:00
radeon_kms.c Revert "drm/radeon/kms: add a new gem_wait ioctl with read/write flags" 2011-10-27 18:15:10 +02:00
radeon_legacy_crtc.c drivers:video:aty:radeon_base Fix typo occationally to occasionally 2011-03-22 16:31:59 +09:00
radeon_legacy_encoders.c drm/radeon: Fix KMS legacy backlight support if CONFIG_BACKLIGHT_CLASS_DEVICE=m. 2011-04-09 16:20:36 +10:00
radeon_legacy_tv.c drm/radeon: Move more code out of line 2011-10-18 09:53:05 +01:00
radeon_mem.c drivers: use kzalloc/kcalloc instead of 'kmalloc+memset', where possible 2011-07-25 20:57:13 -07:00
radeon_mode.h drm/radeon/kms: always do extended edid probe 2011-11-01 16:05:31 +00:00
radeon_object.c Revert "drm/ttm: add a way to bo_wait for either the last read or last write" 2011-10-27 18:28:37 +02:00
radeon_object.h Revert "drm/radeon/kms: add a new gem_wait ioctl with read/write flags" 2011-10-27 18:15:10 +02:00
radeon_pm.c drm/radeon/kms: add missing vddci setting on NI+ 2011-07-26 12:30:34 +01:00
radeon_reg.h Merge branch 'drm-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 2011-07-26 09:21:09 -07:00
radeon_ring.c drm/radeon: Move more code out of line 2011-10-18 09:53:05 +01:00
radeon_state.c drm/radeon: Move more code out of line 2011-10-18 09:53:05 +01:00
radeon_test.c drm/radeon: Explicitly print GTT/VRAM offsets on test failure. 2011-08-22 09:54:52 +01:00
radeon_trace_points.c
radeon_trace.h
radeon_ttm.c drm/radeon/kms: Make GPU/CPU page size handling consistent in blit code (v2) 2011-09-18 19:44:36 +01:00
radeon.h drm/radeon: Make sure CS mutex is held across GPU reset. 2011-11-11 11:02:10 +00:00
rs100d.h
rs400.c drm/radeon/kms: consolidate GART code, fix segfault after GPU lockup V2 2011-11-04 10:39:51 +00:00
rs400d.h
rs600.c drm/radeon/kms: consolidate GART code, fix segfault after GPU lockup V2 2011-11-04 10:39:51 +00:00
rs600d.h
rs690.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2011-03-18 10:37:40 -07:00
rs690d.h
rv200d.h
rv250d.h
rv350d.h
rv515.c
rv515d.h
rv770.c drm/radeon/kms: consolidate GART code, fix segfault after GPU lockup V2 2011-11-04 10:39:51 +00:00
rv770d.h