drm/radeon: fix userptr lockup
We shouldn't try to reserve and wait for a BO that isn't bound. Otherwise we can run into a deadlock if we have a fault during binding the BO. Signed-off-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
db12973cd5
commit
247c405098
|
@ -142,6 +142,9 @@ static void radeon_mn_invalidate_range_start(struct mmu_notifier *mn,
|
||||||
|
|
||||||
list_for_each_entry(bo, &node->bos, mn_list) {
|
list_for_each_entry(bo, &node->bos, mn_list) {
|
||||||
|
|
||||||
|
if (!bo->tbo.ttm || bo->tbo.ttm->state != tt_bound)
|
||||||
|
continue;
|
||||||
|
|
||||||
r = radeon_bo_reserve(bo, true);
|
r = radeon_bo_reserve(bo, true);
|
||||||
if (r) {
|
if (r) {
|
||||||
DRM_ERROR("(%ld) failed to reserve user bo\n", r);
|
DRM_ERROR("(%ld) failed to reserve user bo\n", r);
|
||||||
|
|
Loading…
Reference in New Issue