linux_dsm_epyc7002/drivers/gpu/drm/radeon
Jerome Glisse 961fb597c1 drm/radeon/kms: r600/r700 command stream checker
This patch add cs checker to r600/r700 hw. Command stream checking
will rewrite some of the cs value in order to restrict GPU access
to BO size. This doesn't break old userspace but just enforce safe
value. It should break any things that was using the r600/r700 cs
ioctl to do forbidden things (malicious software), though we are
not aware of such things.

Here is the list of thing we check :
- enforcing resource size
- enforcing color buffer slice tile max, will restrict cb access
- enforcing db buffer slice tile max, will restrict db access

We don't check for shader bigger than the BO in which they are
supposed to be, such use would lead to GPU lockup and is harmless
from security POV, as far as we can tell (note that even checking
for this wouldn't prevent someone to write bogus shader that lead
to lockup).

This patch has received as much testing as humanly possible with
old userspace to check that it didn't break such configuration.
However not all the applications out there were tested, thus it
might broke some odd, rare applications.

[airlied: fix rules for cs checker for parallel builds]

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
2010-02-11 19:03:45 +10:00
..
reg_srcs drm/radeon/kms: r600/r700 command stream checker 2010-02-11 19:03:45 +10:00
.gitignore drm: create gitignore file for radeon 2009-09-25 13:08:21 +10:00
atom-bits.h drm/radeon: introduce kernel modesetting for radeon hardware 2009-06-15 12:01:53 +10:00
atom-names.h drm/radeon: introduce kernel modesetting for radeon hardware 2009-06-15 12:01:53 +10:00
atom-types.h drm/radeon: introduce kernel modesetting for radeon hardware 2009-06-15 12:01:53 +10:00
atom.c drm/radeon/kms: use udelay for short delays 2010-02-09 09:32:32 +10:00
atom.h drm/radeon/kms/atom: upstream parser updates 2010-01-21 08:20:28 +10:00
atombios_crtc.c drm/radeon/kms/evergreen: fix multi-head 2010-02-11 13:39:12 +10:00
atombios_dp.c drm/radeon/kms: add initial Evergreen support (Radeon HD 5xxx) 2010-02-09 09:44:02 +10:00
atombios.h drm/radeon/kms: update atombios.h to latest upstream. 2010-02-09 09:44:01 +10:00
avivod.h drm/radeon/kms: Convert RV515 to new init path and associated cleanup 2009-09-29 11:15:54 +10:00
evergreen_reg.h drm/radeon/kms: add initial Evergreen support (Radeon HD 5xxx) 2010-02-09 09:44:02 +10:00
evergreen.c drm/radeon/kms: add initial Evergreen support (Radeon HD 5xxx) 2010-02-09 09:44:02 +10:00
Kconfig drm/kms/radeon: make kms default a runtime option 2009-09-08 11:15:59 +10:00
Makefile drm/radeon/kms: r600/r700 command stream checker 2010-02-11 19:03:45 +10:00
mkregtable.c drm/radeon: mkregtable.c: close a file before exit 2010-01-08 13:11:55 +10:00
ObjectID.h drm/radeon/kms: pull in the latest upstream ObjectID.h changes 2010-01-08 13:03:57 +10:00
r100_track.h drm/radeon/kms: allow rendering while no colorbuffer is set on r300 2009-12-23 11:14:04 +10:00
r100.c drm/radeon/kms: use wait queue (events) for VBLANK sync 2010-02-09 09:32:33 +10:00
r100d.h drm/radeon/kms: Convert R100 to new init path (V2) 2009-10-02 08:51:49 +10:00
r200.c drm/radeon/kms/r200: fix bug in CS parser 2010-01-21 08:17:13 +10:00
r300_cmdbuf.c DRM: Rename clamp variable 2009-12-23 10:04:01 +10:00
r300_reg.h drm/radeon/kms: add 3DC compression support 2009-12-23 11:14:04 +10:00
r300.c drm/radeon/kms: add functions to get current pcie lanes 2010-02-09 09:32:26 +10:00
r300d.h drm/radeon/kms: Convert R300 to new init path 2009-10-02 08:51:48 +10:00
r420.c drm/radeon/kms: clean up some low-hanging magic numbers 2010-02-09 09:31:20 +10:00
r420d.h drm/radeon/kms: Convert RS400/RS480 to new init path & fix legacy VGA (V3) 2009-10-02 08:51:46 +10:00
r500_reg.h drm/radeon/kms: add support for hw i2c on r1xx-r5xx 2010-02-09 09:31:10 +10:00
r520.c drm/radeon/kms: don't call suspend path before cleaning up GPU 2010-02-05 11:49:52 +10:00
r520d.h drm/radeon/kms: Convert R520 to new init path and associated cleanup 2009-09-29 11:15:56 +10:00
r600_audio.c drm/radeon/kms: disable HDMI audio for now on rv710/rv730 2010-02-05 11:57:42 +10:00
r600_blit_kms.c drm/radeon/kms/r600: reduce gpu cache flushing 2010-02-09 09:32:24 +10:00
r600_blit_shaders.c drm/radeon/kms/r600: reduce gpu cache flushing 2010-02-09 09:32:24 +10:00
r600_blit_shaders.h drm/radeon/kms: add r600 KMS support 2009-09-08 11:15:52 +10:00
r600_blit.c drm/radeon/r600: only assign vb after we know space is available. 2009-10-26 13:28:21 +10:00
r600_cp.c drm/radeon/kms: r600/r700 command stream checker 2010-02-11 19:03:45 +10:00
r600_cs.c drm/radeon/kms: r600/r700 command stream checker 2010-02-11 19:03:45 +10:00
r600_hdmi.c drm/radeon/kms: HDMI support for R600 KMS 2009-12-16 15:46:48 +10:00
r600_reg.h drm/radeon/kms: HDMI support for R600 KMS 2009-12-16 15:46:48 +10:00
r600.c drm/radeon/kms: r600/r700 command stream checker 2010-02-11 19:03:45 +10:00
r600d.h drm/radeon/kms: r600/r700 command stream checker 2010-02-11 19:03:45 +10:00
radeon_agp.c drm/radeon/kms: release agp on error. 2010-02-01 11:22:10 +10:00
radeon_asic.h drm/radeon/kms: add initial Evergreen support (Radeon HD 5xxx) 2010-02-09 09:44:02 +10:00
radeon_atombios.c drm/radeon/kms: add initial Evergreen support (Radeon HD 5xxx) 2010-02-09 09:44:02 +10:00
radeon_benchmark.c drm/radeon/kms: Rework radeon object handling 2009-12-02 14:00:18 +10:00
radeon_bios.c drm/radeon/kms: remove some misleading debugging output 2009-11-04 13:38:02 +10:00
radeon_clocks.c drm/radeon/kms: add initial Evergreen support (Radeon HD 5xxx) 2010-02-09 09:44:02 +10:00
radeon_combios.c drm/radeon/kms: add initial Evergreen support (Radeon HD 5xxx) 2010-02-09 09:44:02 +10:00
radeon_connectors.c drm/radeon/kms: add radeon i2c algo 2010-02-05 15:10:19 +10:00
radeon_cp.c drm/radeon/kms: fix memory leak 2010-01-07 13:38:59 +10:00
radeon_cs.c drm/radeon/kms: Fix oops after radeon_cs_parser_init() failure. 2010-02-01 12:49:28 +10:00
radeon_cursor.c drm/radeon/kms: add initial Evergreen support (Radeon HD 5xxx) 2010-02-09 09:44:02 +10:00
radeon_device.c drm/radeon/kms: add initial Evergreen support (Radeon HD 5xxx) 2010-02-09 09:44:02 +10:00
radeon_display.c drm/radeon/kms: add initial Evergreen support (Radeon HD 5xxx) 2010-02-09 09:44:02 +10:00
radeon_drv.c drm/radeon/kms: add dynamic engine reclocking (V9) 2010-02-09 09:32:26 +10:00
radeon_drv.h drm/radeon/kms: r600/r700 command stream checker 2010-02-11 19:03:45 +10:00
radeon_encoders.c drm/radeon/kms: add initial Evergreen support (Radeon HD 5xxx) 2010-02-09 09:44:02 +10:00
radeon_family.h drm/radeon/kms: add initial Evergreen support (Radeon HD 5xxx) 2010-02-09 09:44:02 +10:00
radeon_fb.c drm/radeon/kms: consolidate crtc count in rdev 2010-02-09 09:32:25 +10:00
radeon_fence.c drm/radeon/radeon_fence.c: move a dereference below the NULL test 2010-01-07 13:54:39 +10:00
radeon_fixed.h drm/radeon/kms/avivo: fix some bugs in the display bandwidth setup 2009-12-10 15:09:05 +10:00
radeon_gart.c drm/radeon/kms: Rework radeon object handling 2009-12-02 14:00:18 +10:00
radeon_gem.c drm/radeon/kms: fix regression rendering issue on R6XX/R7XX 2010-02-05 11:43:51 +10:00
radeon_i2c.c drm/radeon/kms/evergreen: adapt to i2c changes 2010-02-11 13:39:12 +10:00
radeon_ioc32.c drm: convert drm_ioctl to unlocked_ioctl 2009-12-18 11:22:31 +10:00
radeon_irq_kms.c drm/radeon/kms: Don't try to enable IRQ if we have no handler installed 2010-01-08 13:12:20 +10:00
radeon_irq.c gpu/drm/radeon/radeon_irq.c: move a dereference below a NULL test 2010-01-07 13:56:32 +10:00
radeon_kms.c drm/radeon/kms: switch all KMS driver ioctls to unlocked. 2010-02-09 09:32:24 +10:00
radeon_legacy_crtc.c drm/radeon/kms: rework pll algo selection 2010-02-09 09:31:21 +10:00
radeon_legacy_encoders.c drm/radeon/kms: add dynamic engine reclocking (V9) 2010-02-09 09:32:26 +10:00
radeon_legacy_tv.c drm/radeon: fix a couple of array index errors 2010-01-08 13:05:16 +10:00
radeon_mem.c drm: Remove memory debugging infrastructure. 2009-06-18 13:00:33 -07:00
radeon_mode.h drm/radeon/kms: add initial Evergreen support (Radeon HD 5xxx) 2010-02-09 09:44:02 +10:00
radeon_object.c drm/radeon/kms: make hibernate work on IGPs 2010-01-25 16:04:42 +10:00
radeon_object.h drm/radeon/kms: Return to userspace on ERESTARTSYS 2009-12-16 15:39:24 +10:00
radeon_pm.c drm/radeon/kms: use wait queue (events) for VBLANK sync 2010-02-09 09:32:33 +10:00
radeon_reg.h drm/radeon/kms: add initial Evergreen support (Radeon HD 5xxx) 2010-02-09 09:44:02 +10:00
radeon_ring.c drm/radeon/kms: bogus cs recorder utilities 2010-02-09 09:32:34 +10:00
radeon_state.c drm/radeon/r600: don't do interrupts 2009-09-18 14:34:06 +10:00
radeon_test.c drm/radeon: fix build on 64-bit with some compilers. 2009-12-23 10:04:02 +10:00
radeon_ttm.c drm/radeon/kms: only evict to GTT if CP is ready 2010-01-13 13:25:14 +10:00
radeon.h drm/radeon/kms: r600/r700 command stream checker 2010-02-11 19:03:45 +10:00
rs100d.h drm/radeon/kms: Convert R100 to new init path (V2) 2009-10-02 08:51:49 +10:00
rs400.c drm/radeon/kms: rs400/480 MC setup is different than r300. 2010-02-05 13:40:16 +10:00
rs400d.h drm/radeon/kms: Convert RS400/RS480 to new init path & fix legacy VGA (V3) 2009-10-02 08:51:46 +10:00
rs600.c drm/radeon/kms: use wait queue (events) for VBLANK sync 2010-02-09 09:32:33 +10:00
rs600d.h drm/radeon/kms: add regs and irq tracking bits for hpd 2009-12-08 10:46:34 +10:00
rs690.c drm/radeon/kms: don't call suspend path before cleaning up GPU 2010-02-05 11:49:52 +10:00
rs690d.h drm/radeon/kms: Convert RS690/RS740 to new init path (V2). 2009-10-02 08:51:50 +10:00
rv200d.h drm/radeon/kms: Convert R100 to new init path (V2) 2009-10-02 08:51:49 +10:00
rv250d.h drm/radeon/kms: Convert R100 to new init path (V2) 2009-10-02 08:51:49 +10:00
rv350d.h drm/radeon/kms: Convert RS400/RS480 to new init path & fix legacy VGA (V3) 2009-10-02 08:51:46 +10:00
rv515.c drm/radeon/kms: don't call suspend path before cleaning up GPU 2010-02-05 11:49:52 +10:00
rv515d.h drm/radeon/kms: Convert RV515 to new init path and associated cleanup 2009-09-29 11:15:54 +10:00
rv770.c drm/radeon/kms: r600/r700 command stream checker 2010-02-11 19:03:45 +10:00
rv770d.h drm/radeon/kms: add initial Evergreen support (Radeon HD 5xxx) 2010-02-09 09:44:02 +10:00