diff options
Diffstat (limited to 'drivers/gpu/drm/msm/msm_gem.c')
-rw-r--r-- | drivers/gpu/drm/msm/msm_gem.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/drivers/gpu/drm/msm/msm_gem.c b/drivers/gpu/drm/msm/msm_gem.c index ce5adef21a00..ec8fe4bebb3a 100644 --- a/drivers/gpu/drm/msm/msm_gem.c +++ b/drivers/gpu/drm/msm/msm_gem.c @@ -289,14 +289,15 @@ static void put_pages(struct drm_gem_object *obj) struct msm_gem_object *msm_obj = to_msm_bo(obj); if (msm_obj->pages) { - if (msm_obj->flags & MSM_BO_LOCKED) { - unprotect_pages(msm_obj); - msm_obj->flags &= ~MSM_BO_LOCKED; - } + if (msm_obj->sgt) { + if (msm_obj->flags & MSM_BO_LOCKED) { + unprotect_pages(msm_obj); + msm_obj->flags &= ~MSM_BO_LOCKED; + } - if (msm_obj->sgt) sg_free_table(msm_obj->sgt); - kfree(msm_obj->sgt); + kfree(msm_obj->sgt); + } if (use_pages(obj)) { if (msm_obj->flags & MSM_BO_SVM) { |