diff options
Diffstat (limited to 'drivers/gpu/drm/msm/msm_gem.c')
-rw-r--r-- | drivers/gpu/drm/msm/msm_gem.c | 15 |
1 files changed, 2 insertions, 13 deletions
diff --git a/drivers/gpu/drm/msm/msm_gem.c b/drivers/gpu/drm/msm/msm_gem.c index f15821a0d900..ea5bb0e1632c 100644 --- a/drivers/gpu/drm/msm/msm_gem.c +++ b/drivers/gpu/drm/msm/msm_gem.c | |||
@@ -610,17 +610,6 @@ int msm_gem_sync_object(struct drm_gem_object *obj, | |||
610 | struct dma_fence *fence; | 610 | struct dma_fence *fence; |
611 | int i, ret; | 611 | int i, ret; |
612 | 612 | ||
613 | if (!exclusive) { | ||
614 | /* NOTE: _reserve_shared() must happen before _add_shared_fence(), | ||
615 | * which makes this a slightly strange place to call it. OTOH this | ||
616 | * is a convenient can-fail point to hook it in. (And similar to | ||
617 | * how etnaviv and nouveau handle this.) | ||
618 | */ | ||
619 | ret = reservation_object_reserve_shared(msm_obj->resv); | ||
620 | if (ret) | ||
621 | return ret; | ||
622 | } | ||
623 | |||
624 | fobj = reservation_object_get_list(msm_obj->resv); | 613 | fobj = reservation_object_get_list(msm_obj->resv); |
625 | if (!fobj || (fobj->shared_count == 0)) { | 614 | if (!fobj || (fobj->shared_count == 0)) { |
626 | fence = reservation_object_get_excl(msm_obj->resv); | 615 | fence = reservation_object_get_excl(msm_obj->resv); |
@@ -1045,10 +1034,10 @@ static void *_msm_gem_kernel_new(struct drm_device *dev, uint32_t size, | |||
1045 | } | 1034 | } |
1046 | 1035 | ||
1047 | vaddr = msm_gem_get_vaddr(obj); | 1036 | vaddr = msm_gem_get_vaddr(obj); |
1048 | if (!vaddr) { | 1037 | if (IS_ERR(vaddr)) { |
1049 | msm_gem_put_iova(obj, aspace); | 1038 | msm_gem_put_iova(obj, aspace); |
1050 | drm_gem_object_unreference(obj); | 1039 | drm_gem_object_unreference(obj); |
1051 | return ERR_PTR(-ENOMEM); | 1040 | return ERR_CAST(vaddr); |
1052 | } | 1041 | } |
1053 | 1042 | ||
1054 | if (bo) | 1043 | if (bo) |