Rev 3480 | Rev 4104 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3480 | Rev 4075 | ||
---|---|---|---|
Line 102... | Line 102... | ||
102 | if (drm_ht_create(&mm->offset_hash, 12)) { |
102 | if (drm_ht_create(&mm->offset_hash, 12)) { |
103 | kfree(mm); |
103 | kfree(mm); |
104 | return -ENOMEM; |
104 | return -ENOMEM; |
105 | } |
105 | } |
Line 106... | Line 106... | ||
106 | 106 | ||
107 | if (drm_mm_init(&mm->offset_manager, DRM_FILE_PAGE_OFFSET_START, |
107 | drm_mm_init(&mm->offset_manager, DRM_FILE_PAGE_OFFSET_START, |
108 | DRM_FILE_PAGE_OFFSET_SIZE)) { |
- | |
109 | drm_ht_remove(&mm->offset_hash); |
- | |
110 | kfree(mm); |
- | |
111 | return -ENOMEM; |
- | |
Line 112... | Line 108... | ||
112 | } |
108 | DRM_FILE_PAGE_OFFSET_SIZE); |
113 | 109 | ||
Line 114... | Line 110... | ||
114 | return 0; |
110 | return 0; |
Line 445... | Line 441... | ||
445 | 441 | ||
446 | idr_preload(GFP_KERNEL); |
442 | idr_preload(GFP_KERNEL); |
447 | spin_lock(&dev->object_name_lock); |
443 | spin_lock(&dev->object_name_lock); |
448 | if (!obj->name) { |
444 | if (!obj->name) { |
449 | ret = idr_alloc(&dev->object_name_idr, obj, 1, 0, GFP_NOWAIT); |
- | |
450 | obj->name = ret; |
- | |
451 | args->name = (uint64_t) obj->name; |
- | |
452 | spin_unlock(&dev->object_name_lock); |
- | |
453 | idr_preload_end(); |
- | |
454 | 445 | ret = idr_alloc(&dev->object_name_idr, obj, 1, 0, GFP_NOWAIT); |
|
455 | if (ret < 0) |
446 | if (ret < 0) |
- | 447 | goto err; |
|
456 | goto err; |
448 | |
Line 457... | Line 449... | ||
457 | ret = 0; |
449 | obj->name = ret; |
458 | 450 | ||
459 | /* Allocate a reference for the name table. */ |
451 | /* Allocate a reference for the name table. */ |
- | 452 | drm_gem_object_reference(obj); |
|
460 | drm_gem_object_reference(obj); |
453 | } |
461 | } else { |
- | |
462 | args->name = (uint64_t) obj->name; |
- | |
463 | spin_unlock(&dev->object_name_lock); |
454 | |
464 | idr_preload_end(); |
- | |
Line 465... | Line 455... | ||
465 | ret = 0; |
455 | args->name = (uint64_t) obj->name; |
- | 456 | ret = 0; |
|
- | 457 | ||
466 | } |
458 | err: |
467 | 459 | spin_unlock(&dev->object_name_lock); |
|
468 | err: |
460 | idr_preload_end(); |
Line 469... | Line 461... | ||
469 | drm_gem_object_unreference_unlocked(obj); |
461 | drm_gem_object_unreference_unlocked(obj); |