[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