Loading drivers/gpu/drm/drm_sman.c +2 −34 Original line number Diff line number Diff line Loading @@ -47,7 +47,6 @@ struct drm_owner_item { void drm_sman_takedown(struct drm_sman * sman) { drm_ht_remove(&sman->user_hash_tab); kfree(sman->mm); } Loading @@ -62,16 +61,11 @@ drm_sman_init(struct drm_sman * sman, unsigned int num_managers, sman->mm = kcalloc(num_managers, sizeof(*sman->mm), GFP_KERNEL); if (!sman->mm) { ret = -ENOMEM; goto out; return ret; } sman->num_managers = num_managers; ret = drm_ht_create(&sman->user_hash_tab, user_order); if (!ret) goto out; kfree(sman->mm); out: return ret; return 0; } EXPORT_SYMBOL(drm_sman_init); Loading Loading @@ -180,15 +174,8 @@ struct drm_memblock_item *drm_sman_alloc(struct drm_sman *sman, unsigned int man memblock->mm = sman_mm; memblock->sman = sman; if (drm_ht_just_insert_please (&sman->user_hash_tab, &memblock->user_hash, (unsigned long)memblock, 32, 0, 0)) goto out1; return memblock; out1: kfree(memblock); out: sman_mm->free(sman_mm->private, tmp); Loading @@ -199,31 +186,12 @@ EXPORT_SYMBOL(drm_sman_alloc); void drm_sman_free(struct drm_memblock_item *item) { struct drm_sman *sman = item->sman; list_del(&item->owner_list); drm_ht_remove_item(&sman->user_hash_tab, &item->user_hash); item->mm->free(item->mm->private, item->mm_info); kfree(item); } EXPORT_SYMBOL(drm_sman_free); int drm_sman_free_key(struct drm_sman *sman, unsigned int key) { struct drm_hash_item *hash_item; struct drm_memblock_item *memblock_item; if (drm_ht_find_item(&sman->user_hash_tab, key, &hash_item)) return -EINVAL; memblock_item = drm_hash_entry(hash_item, struct drm_memblock_item, user_hash); drm_sman_free(memblock_item); return 0; } EXPORT_SYMBOL(drm_sman_free_key); void drm_sman_cleanup(struct drm_sman *sman) { unsigned int i; Loading include/drm/drm_sman.h +0 −5 Original line number Diff line number Diff line Loading @@ -87,7 +87,6 @@ struct drm_memblock_item { struct drm_sman { struct drm_sman_mm *mm; int num_managers; struct drm_open_hash user_hash_tab; }; /* Loading Loading @@ -139,11 +138,7 @@ extern struct drm_memblock_item *drm_sman_alloc(struct drm_sman * sman, unsigned long size, unsigned alignment, unsigned long owner); /* * Free a memory block identified by its user hash key. */ extern int drm_sman_free_key(struct drm_sman * sman, unsigned int key); extern void drm_sman_free(struct drm_memblock_item *item); /* Loading Loading
drivers/gpu/drm/drm_sman.c +2 −34 Original line number Diff line number Diff line Loading @@ -47,7 +47,6 @@ struct drm_owner_item { void drm_sman_takedown(struct drm_sman * sman) { drm_ht_remove(&sman->user_hash_tab); kfree(sman->mm); } Loading @@ -62,16 +61,11 @@ drm_sman_init(struct drm_sman * sman, unsigned int num_managers, sman->mm = kcalloc(num_managers, sizeof(*sman->mm), GFP_KERNEL); if (!sman->mm) { ret = -ENOMEM; goto out; return ret; } sman->num_managers = num_managers; ret = drm_ht_create(&sman->user_hash_tab, user_order); if (!ret) goto out; kfree(sman->mm); out: return ret; return 0; } EXPORT_SYMBOL(drm_sman_init); Loading Loading @@ -180,15 +174,8 @@ struct drm_memblock_item *drm_sman_alloc(struct drm_sman *sman, unsigned int man memblock->mm = sman_mm; memblock->sman = sman; if (drm_ht_just_insert_please (&sman->user_hash_tab, &memblock->user_hash, (unsigned long)memblock, 32, 0, 0)) goto out1; return memblock; out1: kfree(memblock); out: sman_mm->free(sman_mm->private, tmp); Loading @@ -199,31 +186,12 @@ EXPORT_SYMBOL(drm_sman_alloc); void drm_sman_free(struct drm_memblock_item *item) { struct drm_sman *sman = item->sman; list_del(&item->owner_list); drm_ht_remove_item(&sman->user_hash_tab, &item->user_hash); item->mm->free(item->mm->private, item->mm_info); kfree(item); } EXPORT_SYMBOL(drm_sman_free); int drm_sman_free_key(struct drm_sman *sman, unsigned int key) { struct drm_hash_item *hash_item; struct drm_memblock_item *memblock_item; if (drm_ht_find_item(&sman->user_hash_tab, key, &hash_item)) return -EINVAL; memblock_item = drm_hash_entry(hash_item, struct drm_memblock_item, user_hash); drm_sman_free(memblock_item); return 0; } EXPORT_SYMBOL(drm_sman_free_key); void drm_sman_cleanup(struct drm_sman *sman) { unsigned int i; Loading
include/drm/drm_sman.h +0 −5 Original line number Diff line number Diff line Loading @@ -87,7 +87,6 @@ struct drm_memblock_item { struct drm_sman { struct drm_sman_mm *mm; int num_managers; struct drm_open_hash user_hash_tab; }; /* Loading Loading @@ -139,11 +138,7 @@ extern struct drm_memblock_item *drm_sman_alloc(struct drm_sman * sman, unsigned long size, unsigned alignment, unsigned long owner); /* * Free a memory block identified by its user hash key. */ extern int drm_sman_free_key(struct drm_sman * sman, unsigned int key); extern void drm_sman_free(struct drm_memblock_item *item); /* Loading