diff options
Diffstat (limited to 'drivers/char/drm/drm_bufs.c')
-rw-r--r-- | drivers/char/drm/drm_bufs.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/char/drm/drm_bufs.c b/drivers/char/drm/drm_bufs.c index d917c8cb8a36..a6828cc14e58 100644 --- a/drivers/char/drm/drm_bufs.c +++ b/drivers/char/drm/drm_bufs.c | |||
@@ -79,14 +79,14 @@ static int drm_map_handle(drm_device_t *dev, drm_hash_item_t *hash, | |||
79 | 79 | ||
80 | if (!use_hashed_handle) { | 80 | if (!use_hashed_handle) { |
81 | int ret; | 81 | int ret; |
82 | hash->key = user_token; | 82 | hash->key = user_token >> PAGE_SHIFT; |
83 | ret = drm_ht_insert_item(&dev->map_hash, hash); | 83 | ret = drm_ht_insert_item(&dev->map_hash, hash); |
84 | if (ret != -EINVAL) | 84 | if (ret != -EINVAL) |
85 | return ret; | 85 | return ret; |
86 | } | 86 | } |
87 | return drm_ht_just_insert_please(&dev->map_hash, hash, | 87 | return drm_ht_just_insert_please(&dev->map_hash, hash, |
88 | user_token, 32 - PAGE_SHIFT - 3, | 88 | user_token, 32 - PAGE_SHIFT - 3, |
89 | PAGE_SHIFT, DRM_MAP_HASH_OFFSET); | 89 | 0, DRM_MAP_HASH_OFFSET >> PAGE_SHIFT); |
90 | } | 90 | } |
91 | 91 | ||
92 | /** | 92 | /** |
@@ -262,7 +262,7 @@ static int drm_addmap_core(drm_device_t * dev, unsigned int offset, | |||
262 | return ret; | 262 | return ret; |
263 | } | 263 | } |
264 | 264 | ||
265 | list->user_token = list->hash.key; | 265 | list->user_token = list->hash.key << PAGE_SHIFT; |
266 | mutex_unlock(&dev->struct_mutex); | 266 | mutex_unlock(&dev->struct_mutex); |
267 | 267 | ||
268 | *maplist = list; | 268 | *maplist = list; |
@@ -347,7 +347,8 @@ int drm_rmmap_locked(drm_device_t *dev, drm_local_map_t *map) | |||
347 | 347 | ||
348 | if (r_list->map == map) { | 348 | if (r_list->map == map) { |
349 | list_del(list); | 349 | list_del(list); |
350 | drm_ht_remove_key(&dev->map_hash, r_list->user_token); | 350 | drm_ht_remove_key(&dev->map_hash, |
351 | r_list->user_token >> PAGE_SHIFT); | ||
351 | drm_free(list, sizeof(*list), DRM_MEM_MAPS); | 352 | drm_free(list, sizeof(*list), DRM_MEM_MAPS); |
352 | break; | 353 | break; |
353 | } | 354 | } |