drm/radeon/kms: Bailout of blit if error happen & protect with mutex V3
authorJerome Glisse <jglisse@redhat.com>
Fri, 22 Jan 2010 14:19:00 +0000 (15:19 +0100)
committerDave Airlie <airlied@redhat.com>
Mon, 1 Feb 2010 01:33:11 +0000 (11:33 +1000)
commitff82f052d2a187dd0fa0e431ba70eb457c71a40e
tree65bf2788445c3087cdb6c05fe2d40e81629ffd3b
parent5ffdb658f605cbc420944e7c7eeec9fbb8a73772
drm/radeon/kms: Bailout of blit if error happen & protect with mutex V3

If an error happen in r600_blit_prepare_copy report it rather
than WARNING and keeping execution. For instance if ib allocation
failed we did just warn about but then latter tried to access
NULL ib ptr causing oops. This patch also protect r600_copy_blit
with a mutex as otherwise one process might overwrite blit temporary
data with new one possibly leading to GPU lockup.

Should partialy or totaly fix:
https://bugzilla.redhat.com/show_bug.cgi?id=553279

V2 failing blit initialization is not fatal, fallback to memcpy when
this happen
V3 init blit before startup as we pin in startup, remove duplicate
code (this one was actualy tested unlike V2)

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/radeon/r600.c
drivers/gpu/drm/radeon/r600_blit_kms.c
drivers/gpu/drm/radeon/radeon.h
drivers/gpu/drm/radeon/rv770.c