[PATCH] drm/radeon: fix userptr lockup
Alex Deucher
alexdeucher at gmail.com
Tue May 5 06:51:06 PDT 2015
On Tue, May 5, 2015 at 3:52 AM, Christian König <deathsimple at vodafone.de> wrote:
> From: Christian König <christian.koenig at amd.com>
>
> 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 at amd.com>
Applied to my -fixes tree.
Thanks,
Alex
> ---
> drivers/gpu/drm/radeon/radeon_mn.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/gpu/drm/radeon/radeon_mn.c b/drivers/gpu/drm/radeon/radeon_mn.c
> index 535bf40..eef006c 100644
> --- a/drivers/gpu/drm/radeon/radeon_mn.c
> +++ b/drivers/gpu/drm/radeon/radeon_mn.c
> @@ -142,6 +142,9 @@ static void radeon_mn_invalidate_range_start(struct mmu_notifier *mn,
>
> 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);
> if (r) {
> DRM_ERROR("(%ld) failed to reserve user bo\n", r);
> --
> 1.9.1
>
More information about the dri-devel
mailing list