diff options
author | Rob Clark <robdclark@gmail.com> | 2015-07-23 13:44:56 -0400 |
---|---|---|
committer | Rob Clark <robdclark@gmail.com> | 2015-08-14 17:10:13 -0400 |
commit | bbcc71872a57cb4642c15423ae229aefdf09910a (patch) | |
tree | 28320b6b2faf49ed538545e2a004e504dd6a6cf8 /drivers/gpu/drm/msm | |
parent | 8f9cb50789e76f3e224e8861adf650e55c747af4 (diff) | |
download | lwn-bbcc71872a57cb4642c15423ae229aefdf09910a.tar.gz lwn-bbcc71872a57cb4642c15423ae229aefdf09910a.zip |
drm/msm: fix msm_gem_prime_get_sg_table()
We need to return a new sgt, since the caller takes ownership of it.
Reported-by: Stanimir Varbanov <svarbanov@mm-sol.com>
Signed-off-by: Rob Clark <robdclark@gmail.com>
Diffstat (limited to 'drivers/gpu/drm/msm')
-rw-r--r-- | drivers/gpu/drm/msm/msm_gem_prime.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/gpu/drm/msm/msm_gem_prime.c b/drivers/gpu/drm/msm/msm_gem_prime.c index dd7a7ab603e2..831461bc98a5 100644 --- a/drivers/gpu/drm/msm/msm_gem_prime.c +++ b/drivers/gpu/drm/msm/msm_gem_prime.c @@ -23,8 +23,12 @@ struct sg_table *msm_gem_prime_get_sg_table(struct drm_gem_object *obj) { struct msm_gem_object *msm_obj = to_msm_bo(obj); - BUG_ON(!msm_obj->sgt); /* should have already pinned! */ - return msm_obj->sgt; + int npages = obj->size >> PAGE_SHIFT; + + if (WARN_ON(!msm_obj->pages)) /* should have already pinned! */ + return NULL; + + return drm_prime_pages_to_sg(msm_obj->pages, npages); } void *msm_gem_prime_vmap(struct drm_gem_object *obj) |