fix ttm bug
This commit is contained in:
parent
f7f1f5ef4a
commit
bd31d54eac
|
@ -0,0 +1,39 @@
|
|||
From 0fbecd400dd0a82d465b3086f209681e8c54cb0f Mon Sep 17 00:00:00 2001
|
||||
From: Francisco Jerez <currojerez@riseup.net>
|
||||
Date: Tue, 21 Sep 2010 02:15:15 +0200
|
||||
Subject: [PATCH] drm/ttm: Clear the ghost cpu_writers flag on ttm_buffer_object_transfer.
|
||||
|
||||
It makes sense for a BO to move after a process has requested
|
||||
exclusive RW access on it (e.g. because the BO used to be located in
|
||||
unmappable VRAM and we intercepted the CPU access from the fault
|
||||
handler).
|
||||
|
||||
If we let the ghost object inherit cpu_writers from the original
|
||||
object, ttm_bo_release_list() will raise a kernel BUG when the ghost
|
||||
object is destroyed. This can be reproduced with the nouveau driver on
|
||||
nv5x.
|
||||
|
||||
Reported-by: Marcin Slusarz <marcin.slusarz@gmail.com>
|
||||
Reviewed-by: Jerome Glisse <jglisse@redhat.com>
|
||||
Tested-by: Marcin Slusarz <marcin.slusarz@gmail.com>
|
||||
Signed-off-by: Francisco Jerez <currojerez@riseup.net>
|
||||
Signed-off-by: Dave Airlie <airlied@redhat.com>
|
||||
---
|
||||
drivers/gpu/drm/ttm/ttm_bo_util.c | 1 +
|
||||
1 files changed, 1 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/drivers/gpu/drm/ttm/ttm_bo_util.c b/drivers/gpu/drm/ttm/ttm_bo_util.c
|
||||
index 7cffb3e..3451a82 100644
|
||||
--- a/drivers/gpu/drm/ttm/ttm_bo_util.c
|
||||
+++ b/drivers/gpu/drm/ttm/ttm_bo_util.c
|
||||
@@ -351,6 +351,7 @@ static int ttm_buffer_object_transfer(struct ttm_buffer_object *bo,
|
||||
INIT_LIST_HEAD(&fbo->lru);
|
||||
INIT_LIST_HEAD(&fbo->swap);
|
||||
fbo->vm_node = NULL;
|
||||
+ atomic_set(&fbo->cpu_writers, 0);
|
||||
|
||||
fbo->sync_obj = driver->sync_obj_ref(bo->sync_obj);
|
||||
kref_init(&fbo->list_kref);
|
||||
--
|
||||
1.7.3.1
|
||||
|
|
@ -662,6 +662,7 @@ Patch1802: revert-drm-kms-toggle-poll-around-switcheroo.patch
|
|||
Patch1805: drm-simplify-i2c-config.patch
|
||||
Patch1806: drm-sil164-module.patch
|
||||
Patch1807: drm-i2c-ch7006-fix.patch
|
||||
Patch1808: drm-ttm-fix.patch
|
||||
# nouveau + drm fixes
|
||||
Patch1810: drm-nouveau-updates.patch
|
||||
Patch1811: drm-nouveau-race-fix.patch
|
||||
|
@ -1300,6 +1301,7 @@ ApplyPatch fix_xen_guest_on_old_EC2.patch
|
|||
ApplyPatch drm-simplify-i2c-config.patch
|
||||
ApplyPatch drm-sil164-module.patch
|
||||
ApplyPatch drm-i2c-ch7006-fix.patch
|
||||
ApplyPatch drm-ttm-fix.patch
|
||||
# Nouveau DRM + drm fixes
|
||||
ApplyPatch drm-nouveau-updates.patch
|
||||
ApplyPatch drm-nouveau-race-fix.patch
|
||||
|
@ -1977,6 +1979,9 @@ fi
|
|||
# and build.
|
||||
|
||||
%changelog
|
||||
* Mon Oct 11 2010 Ben Skeggs <bskeggs@redhat.com>
|
||||
- fix ttm bug that can cause nouveau to crash
|
||||
|
||||
* Fri Oct 08 2010 Kyle McMartin <kyle@redhat.com> 2.6.35.6-39
|
||||
- Push to F-14.
|
||||
|
||||
|
|
Loading…
Reference in New Issue