diff options
Diffstat (limited to 'drivers/gpu/drm/udl/udl_gem.c')
-rw-r--r-- | drivers/gpu/drm/udl/udl_gem.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/drivers/gpu/drm/udl/udl_gem.c b/drivers/gpu/drm/udl/udl_gem.c index ef034fa3e6f5..2a4cb2f83b36 100644 --- a/drivers/gpu/drm/udl/udl_gem.c +++ b/drivers/gpu/drm/udl/udl_gem.c | |||
@@ -223,8 +223,7 @@ void udl_gem_free_object(struct drm_gem_object *gem_obj) | |||
223 | if (obj->pages) | 223 | if (obj->pages) |
224 | udl_gem_put_pages(obj); | 224 | udl_gem_put_pages(obj); |
225 | 225 | ||
226 | if (gem_obj->map_list.map) | 226 | drm_gem_free_mmap_offset(gem_obj); |
227 | drm_gem_free_mmap_offset(gem_obj); | ||
228 | } | 227 | } |
229 | 228 | ||
230 | /* the dumb interface doesn't work with the GEM straight MMAP | 229 | /* the dumb interface doesn't work with the GEM straight MMAP |
@@ -247,13 +246,11 @@ int udl_gem_mmap(struct drm_file *file, struct drm_device *dev, | |||
247 | ret = udl_gem_get_pages(gobj, GFP_KERNEL); | 246 | ret = udl_gem_get_pages(gobj, GFP_KERNEL); |
248 | if (ret) | 247 | if (ret) |
249 | goto out; | 248 | goto out; |
250 | if (!gobj->base.map_list.map) { | 249 | ret = drm_gem_create_mmap_offset(obj); |
251 | ret = drm_gem_create_mmap_offset(obj); | 250 | if (ret) |
252 | if (ret) | 251 | goto out; |
253 | goto out; | ||
254 | } | ||
255 | 252 | ||
256 | *offset = (u64)gobj->base.map_list.hash.key << PAGE_SHIFT; | 253 | *offset = drm_vma_node_offset_addr(&gobj->base.vma_node); |
257 | 254 | ||
258 | out: | 255 | out: |
259 | drm_gem_object_unreference(&gobj->base); | 256 | drm_gem_object_unreference(&gobj->base); |